🦅

Flutter / state_notifier

2022/12/02に公開

参考資料

目的

  • stateを保護する
    • stateの更新は、StateNotifierが公開するインターフェースを通してのみ行われる
  • change notifierは非推奨

使い方

// Package imports:
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:freezed_annotation/freezed_annotation.dart';


class MyState with _$MyState {
	const factory MyState({
		final String name;		
	}) = _MyState;
}

class MyStateNotifier extends StateNotifier<MyState> {
	MyStateNotifier(): super(MyState('Satou Taro'));
	
	// 外部からstateにアクセス可能なインターフェース
	void add() {
		state = MyState(state.name + '_add');
	}
}

void main(){
	final notifier = MyStateNotifier();
	notifier.add();
	
}

作り方

https://github.com/rrousselGit/state_notifier/blob/master/packages/state_notifier/test/state_notifier_test.dart

Discussion