[英]Riverpod : Access Provider in initState method
嘗試讀取 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
,您將能夠等待用戶被加載。 然后您可以像所有期貨一樣使用.then
或await
。
我正在使用最新的 River pod 版本。 它不支持 context.read function 以獲取 initstate 中的提供值。 如何使用當前版本的 Riverpod 在 initstate 中訪問提供者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.