Open5
読者コミュニティ|仕組みから理解する Riverpod
本の内容に対する質問や誤りの指摘、その他 Riverpod に対する疑問や書いてほしい点などをお気軽にコメントしてください。
いつになるかはわかりませんが、以下の内容を追記予定です。
- チャプター2 「Riverpod チートシート」への追記
- .family の使い方
- .override の使い方
- テストの書き方
- 新しいチャプターを追加(前半)
- .family の仕組みと扱い方の注意
- 自動テストの書き方
- 新しいチャプターを追加(後半)
- 公式ドキュメントや issue で紹介されるテクニックとその解説
誤りと思われる点がありました。
Chapter 02 「Riverpod チートシート」のAsyncValue
の最後のコードサンプルの部分です。
- data: (error, stacktrace) => Text(error.toString());
+ error: (error, stacktrace) => Text(error.toString());
本当ですね、、!ご指摘ありがとうございます。修正しました。
AsyncValueの状態遷移の説明など非常に分かりやすく、ありがとうございます(公式のドキュメントもこうやって説明してくれたら良いのに、と思ってしまいました😅)。今後も追記予定とのことで、楽しみに待ちたいと思います。
.refresh() は .invalidate() と .read() を連続で呼び出した場合と同じ挙動をします。
私もソースを見るとそうなのだろうと思っていたのですが、ref.invalidate
とref.refresh
について、errorコールバックが呼び出されるか否かの挙動の違いが出るケースがありまして、何らかメカニズムをご存知でしょうか。1年ほど前にDiscussionsへコードとともにコメントしたのですが、Remiさん曰く「because of some race conditions」とのことで...私には???な状況でした。最終的な結果は同じだとしても挙動が違うでしょ?と思ったのですが。