useEffect:使い方 - Ki-Kobayashi/flutter_wiki GitHub Wiki
🟩 useEffectの基本
- useXxxx系は、build 関数内に書く(でないとエラーになる)
- 複数定義可能
useEffect 内の処理が実行されるは、以下の3ケース。
- 初回 Build 時
- 第二引数の keys が変わったとき
- dispose された時
💡StatefulWidgetの 「initState」「didUpdateWidget」を、StatelessWidget状態で実装できる ようになる(コード量削減)
🟡基本の形式
useEffect(() {
// 🌟初回ビルド時・第二引数の keys 変化時に実行したい処理はここに記載
return null or somethingMethod(); // 👈 dispose 時や useEffect が再度呼び出された時、実行される
},
[param1, param2], // 👈リスト内に、監視したい変数を定義
);
.
🟡 build 後に、一度だけ実行したい場合
https://www.memory-lovers.blog/entry/2023/09/27/091033
keysにconst []を渡すことで、最初の1度だけ実行されるようにできる。
( ※ const []
は不変なため。)
useEffect(() {
// build "完了後" に "1度だけ" 実行したい処理
WidgetsBinding.instance.addPostFrameCallback((_) {
// build完了後に呼び出し
ref.read(myProvider.notifier).init();
});
return null;
}, const []); // 👈 不変
.
🟩
.
🟡
.
🟩
🟡
.
🟩
🟡
.
🟩
🟡
.
🟩
🟡
.
🟩
🟡
.
🟩
🟡
.
🟩
🟡
.