我正在构建一个 Flutter 应用程序,它有一个主要提供程序,其中包含会话 id 和许多其他“全局”属性。
class AppService with ChangeNotifier {
String _sessionId;
String _name;
...
}
Run Code Online (Sandbox Code Playgroud)
我还有其他几个处理非常具体的事情的提供程序(AppService 也开始变得很大,所以必须将其拆分出来)。
我的问题是如何从其他服务(例如将它们命名为 ServiceB、ServiceC 和 ServiceD)访问 AppService 中的 _sessionId、名称和其他属性?是否可以从另一个(例如 ServiceB)调用 AppService 中的函数?
class ServiceB with ChangeNotifier {
...
}
class ServiceC with ChangeNotifier {
...
}
class ServiceD with ChangeNotifier {
...
}
Run Code Online (Sandbox Code Playgroud)
我看到有人提到ChangeNotifierProxyProvider,但不确定这是否会给我带来我需要的东西,因为我需要访问多个其他类中的 AppService 。
这是我的提供商当前的设置方式。
MultiProvider(
providers: [
ChangeNotifierProvider<AppService>(
create: (_) => AppService(),
),
ChangeNotifierProvider<ServiceB>(
create: (_) => ServiceB(),
),
ChangeNotifierProvider<ServiceC>(
create: (_) => ServiceC(),
),
ChangeNotifierProvider<ServiceD>(
create: (_) => …Run Code Online (Sandbox Code Playgroud)