I'm trying to learn Riverpod and I have a ChangeNotifierProvider
that has a few fields that need to be initialized with a value that is returned from an async operation. Is this possible, as I know I cant create the ChangeNotifierProvider
asynchronously?
Example ChangeNotifierProvider
class SomeState extends ChangeNotifier {
String email = '';
// needs to be set to value returned from
// shared preferences upon init
}
If not possible, is there another provider that could work better knowing I want to initialize its value to the returned value from async method?
Yes, it is possible as Abion47's comment. Let me show more details in the code below
As we manage state independently from Flutter UI, there is nothing blocking you from running code to trigger a state change, for example in our case notifier.load().
After notifier.load() and email is set then the provider will trigger UI change using notifyListeners().
You can achieve a similar result using FutureProvider.