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 []); // 👈 不変

.

🟩

.

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.