簡體   English   中英

Riverpod:initState 方法中的訪問提供程序

[英]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 ,您將能夠等待用戶被加載。 然后您可以像所有期貨一樣使用.thenawait

我正在使用最新的 River pod 版本。 它不支持 context.read function 以獲取 initstate 中的提供值。 如何使用當前版本的 Riverpod 在 initstate 中訪問提供者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM