見出し画像

Flutter Providerとか学習。


1、riverpodインポート後、アプリをProviderScopeで囲む。

※ちなみに、riverpodとflutter riverpodがある。flutterのを使う。
まじでトラップである。

consumerwidget


2、次にmyappをconsumerウィジットにする。
consumer widgetはriverpodを使えるstateless widgetのようだ。
3、bulidの引数にWidgetRefを追記する。
Widget build(BuildContext context,WidgetRef ref)
4、providerクラスを作る。

Stringを受け渡すなら、
final titleProvider = Provider<String>((ref){return 'ホニャララ';});
使うときは、
Text(ref.watch(titleProvider)

次は、providerではなくstateprovider。
作り方は同じ、
final pppp = StateProvider<int>((ref){ruturn 10101010;});
使うときは、
ref.watch(pppp.state).toStringとか。

consumerwidgetではなく、consumerの場合


statelesswidgetの中で、一部のみ更新されるようにするなら、
consumer widgetではなく、
statelesswidget内のwidgetをconsumerで包む。
consumerにはbuilderと言うプロパティがある
builder:(context, ref, child) => Text(ref.watch(Provider)))
みたいに書く。
ウィジット全部リビルドしたくない時はref.read(Provider)

ConsumerStatefulWidget


buildのwidgetref refを書く必要がない。
consumerStatenに含まれているらしい。
refを直接使うことができる。
簡単に書ける、だがウィジットは全体がリビルドされる。


この記事が気に入ったらサポートをしてみませんか?