StateNotifierは、複雑なロジックを持つ状態を管理するためのクラスです。単純な値の変更だけでなく、ロジックを含む状態の更新を行うことができます。

主な特徴

「状態を持つクラスを作って、それを Provider 経由で UI に反映する」 のが stateNotifier

カウンターの例

値を増やすロジックとリセットするロジックをクラスにまとめている

class CounterNotifier extends StateNotifier<int> {
  CounterNotifier() : super(0);

  void increment() => state++;
  void reset() => state = 0;
}

final counterProvider =
    StateNotifierProvider<CounterNotifier, int>((ref) => CounterNotifier());

特徴

デメリット

Notifierの場合

class Counter extends Notifier<int> {
  @override
  int build() {
    return 0; // 初期値
  }

  void increment() => state++;
  void reset() => state = 0;
}

final counterProvider = NotifierProvider<Counter, int>(Counter.new);

特徴