我可以在MultiProvider中将一个依赖关系用于另一个依赖关系吗?

时间:2020-08-10 07:40:25

标签: flutter dart provider

我可以在MultiProvider中为另一个依赖项使用一个依赖项吗?

我试图这样做,但是没有用:

MultiProvider(
      providers: <Provider<dynamic>>[
        Provider<SettingsProvider>.value(value: SettingsProvider()),
        Provider<Bloc>.value(value: Bloc(Provider.of<SettingsProvider>(context))),
      ]),

1 个答案:

答案 0 :(得分:0)

 MultiProvider(
  providers: [
    ChangeNotifierProvider(builder: (_) => Auth()),
    ChangeNotifierProxyProvider<Auth, Messages>(
      builder: (context, auth, previousMessages) => Messages(auth),
      initialBuilder: (BuildContext context) => Messages(null),
    ),

在其他提供者内部使用一个提供者

class Messages extends ChangeNotifier {
final Auth _authProvider;

List<Message> _messages = [];
List<Message> get messages => _messages;

Messages(this._authProvider) {
    if (this._authProvider != null) {
        if (_authProvider.loggedIn) fetchMessages();
    }
}

...

}