小编teh*_*aab的帖子

Flutter - 在多个提供者之间共享数据

我正在构建一个 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)

dart flutter flutter-provider

1
推荐指数
1
解决办法
2037
查看次数

标签 统计

dart ×1

flutter ×1

flutter-provider ×1