生成したダイアログでRiverpodで提供しているStateの変更を反映させる
Riverpodの使っているFlutterのアプリケーションで,StateNotifierで提供しているオブジェクトをwatchし,それをダイアログに渡して表示させたり,stateを変更したい場合,ダイアログそのものでwatchする必要がありそうです(引数で渡すだけではNG).
Dialog内でもStateNotifierから提供させるオブジェクトをwatchしてあげないと,stateの変更がUIに反映されませんでした.
もちろん,ダイアログも ConsumerWidget
を継承させてあげる必要があります.
class Dialog extends ConsumerWidget { @override Widget build(BuildContext context, ScopedReader watch) { final viewModelState = watch(XXXNotifierProvider().state); final viewModel = watch(XXXNotifierProvider()); return Dialog(...); }
RiverpodのStateNotifierProviderが返すオブジェクトはシングルトンになっているので問題もないです.
Riverpod,便利ですね...