Start Debugging

タグ: riverpod

13 件 · ページ1/2

Flutter で setState の StatefulWidget を Riverpod の Notifier に移行する
ウィジェットローカルな setState から Riverpod 3.x の Notifier へ移す手順です。何をウィジェットの外に出すかを仕分けし、Notifier を書き、ConsumerWidget に変換し、setState からの移行者を悩ませる == によるフィルタリング、build() の再実行、autoDispose の既定値の違いを乗り切ります。Flutter 3.44、Dart 3.x、flutter_riverpod 3.3.2 で検証しました。
2026-07-21 flutterdartriverpod
修正: Riverpod 3.0 で StreamProvider が更新を == でフィルタリングされて発火しなくなる
Riverpod 3.0 では、すべてのプロバイダーがリスナー通知を同一性ではなく == でフィルタリングします。同じミュータブルオブジェクトを再度発行する StreamProvider は、最初のフレーム以降 UI を再構築しなくなります。なぜそうなるのか、そして 3 つの修正方法を解説します。flutter_riverpod 3.3.2、Flutter 3.44、Dart 3.x で検証済みです。
Flutter で Riverpod 2.x から Riverpod 3.0 へ移行する
flutter_riverpod 2.x から 3.x への段階的なアップグレード手順です。パッケージを更新し、StateProvider などを legacy インポートへ移し、AutoDispose と Family の ref 型を廃止し、ProviderException のラップと自動リトライに対応し、StreamProvider のイベントを暗黙的に取りこぼす == による通知フィルタリングを修正します。Flutter 3.44、Dart 3.x、flutter_riverpod 3.3.2 で検証済みです。
2026-07-04 flutterdartriverpod
Flutter Riverpod 3 で非同期ギャップの後に Ref.mounted を確認する方法
Notifier では await の前に依存関係を解決し、その後 if (!ref.mounted) return で state の書き込みを保護します。これは Riverpod 3.0 における古い onDispose ミックスインの代替であり、provider が await の途中で破棄されたときの UnmountedRefException を防ぎます。flutter_riverpod 3.x、Flutter 3.44、Dart 3.x で検証済みです。
Flutter で FutureBuilder から Riverpod の AsyncNotifier へ移行する (flutter_riverpod 3.3.2)
実際の Flutter アプリで、インラインの FutureBuilder ウィジェットから Riverpod の AsyncNotifier へ段階的に移行する手順です。非同期処理を build の外へ移し、プロバイダーとして公開し、.when() や switch のパターンマッチングで描画し、リフレッシュとミューテーションのメソッドを追加します。Flutter 3.44、Dart 3.x、flutter_riverpod 3.3.2 で検証済みです。
2026-06-16 flutterdartriverpod
Flutter で provider から Riverpod へ移行する (provider 6.1.5 から Riverpod 3.x へ)
実際の Flutter アプリで provider パッケージから Riverpod 3.x へ段階的に移行する手順です。ChangeNotifierProvider から Notifier へ、MultiProvider から ProviderScope へ、context.watch から ref.watch へ、ProxyProvider から ref.watch による合成へ、加えて引っかかりやすい等価性とライフサイクルの落とし穴も解説します。Flutter 3.27.1、Dart 3.11、provider 6.1.5、flutter_riverpod 3.3.1 で検証済みです。
Flutter の FutureBuilder/StreamBuilder と Riverpod の AsyncValue: どちらを使うべきか
自己完結した使い捨ての非同期ウィジェットには FutureBuilder または StreamBuilder を使います。結果が共有され、キャッシュされ、ミューテートされるようになったら Riverpod の AsyncValue に切り替えます。ここに判断基準、落とし穴、両方の実行可能なコードがあります。Flutter 3.44 と flutter_riverpod 3.3.1 で検証済みです。
次へ