Flutter MultiProvider 类 构造函数问题

Flutter MultiProvider Classes constructors issue

我正在使用 flutter 创建一个购物应用程序,并使用 Provider 包进行状态管理。一切都非常好,只是一个问题。我正在这样声明我的 ChangeNotifierProviders。

void main() {
  runApp(MultiProvider(
    providers: <SingleChildWidget>[
      ChangeNotifierProvider(create: (_) => AuthStateManager.instance()),
      ChangeNotifierProvider(create: (_) => CartManager()),
      ChangeNotifierProvider(create: (_) => LocationManager()),
      ChangeNotifierProvider(create: (_) => BottomNavigationManager()),
      ChangeNotifierProvider(create: (_) => NotificationManager()),
    ],
    child: EvendorApp(),
  ));
}

全部类都喜欢

class NotificationManager with ChangeNotifier {
  NotificationManager() {
    print("Notification manager created");
  }
}

现在这些在状态管理方面工作得很好,但我想在它们的构造上执行一些代码,例如我想 运行 代码在他们的构造函数中,但是 AuthStateManager.instance()BottomNavigationManager()CartManager() 在开始时执行代码,但其他 LocationManager()NotificationManager()没有执行代码,我不知道为什么会这样。我对所有 类.

做同样的事情

我不确定这是否是答案,因为我从未使用过它,但 Provider 包文档确实说明了以下内容:

When using the create/update callback of a provider, it is worth noting that this callback is called lazily by default. What this means is, until the value is requested at least once, the create/update callbacks won't be called.

如果是这种情况,那么解决方法是添加值为 false 的惰性参数。像这样:

ChangeNotifierProvider(create: (_) => NotificationManager(), lazy: false)