【发布时间】:2021-01-24 19:54:57
【问题描述】:
我正在尝试学习 Riverpod,我有一个 ChangeNotifierProvider,其中有一些字段需要使用从异步操作返回的值进行初始化。这可能吗,因为我知道我无法异步创建ChangeNotifierProvider?
例如ChangeNotifierProvider
class SomeState extends ChangeNotifier {
String email = '';
// needs to be set to value returned from
// shared preferences upon init
}
如果不可能,是否有其他提供程序可以更好地知道我想将其值初始化为异步方法的返回值?
【问题讨论】:
-
强制状态等待未来的返回值可能会停止整个应用程序。相反,在您的状态初始化中调用 async 方法,并在完成后保存值并调用
notifyListeners()以重建任何侦听小部件。 -
谢谢@Abion47,这是有道理的。打算尝试重构。
-
你可以添加一个“bool isLoading”标志
-
谢谢@RémiRousselet,但我不确定我应该把这个标志放在哪里?
-
在你的
SomeState类中
标签: flutter dart flutter-provider riverpod