Riverpod:initState方法中的访问提供程序



尝试读取initState内部的streamProvider,但失败。请原谅我,我在这里做错了什么?

@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
final userStream = context.read(userStreamProvider);
print('user : $userStream'); // user : AsyncValue<Null>.loading()
});
}

到目前为止,我发现context.read(userStreamProvider)只在内部工作build(BuildContext context)

您的代码可以正常工作。问题是,您没有等待加载用户。

你想要的可能是:

@override
void initState() {
super.initState();
context.read(userStreamProvider.last).then((user) {
print('user $user');
});

}

通过读取userStreamProvider.last,您将能够等待加载用户。然后,您可以像使用所有期货一样使用.thenawait

我使用的是最新的river pod版本。它不支持context.read函数来获取initstate中的provide值。如何使用当前版本的riverpod访问initstate中的提供程序。

相关内容

  • 没有找到相关文章

最新更新