If you want to use a provider inside of another provider in flutter?In the main.dart file I now use ChangeNotifierProxyProvider instead of ChangeNotifierProvider for the dependig provider:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // main.dart return MultiProvider( providers: [ ChangeNotifierProvider(builder: (_) => Auth()), ChangeNotifierProxyProvider<Auth, Messages>( builder: (context, auth, previousMessages) => Messages(auth), initialBuilder: (BuildContext context) => Messages(null), ), ], child: MaterialApp( ... ), ); |
Now the Messages provider will be rebuilt when the login state changes and gets passed the Auth Provider:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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(); } } ... } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.