试图读取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)
方法
答案 0 :(得分:3)
您的代码有效。问题是,您不是在等待加载用户。
您想要的可能是:
@override
void initState() {
super.initState();
context.read(userStreamProvider.last).then((user) {
print('user $user');
});
}
通过阅读userStreamProvider.last
,您可以等待等待加载用户。然后,您可以像使用所有期货一样使用.then
或await
。