1
FlutterでProvider.of <X>とConsumer.Xを使用する場合
私はまだ状態管理手法に頭を抱えており、Provider.of<X>vs Consumer<X>. をいつどのように使用するかについて少し混乱しています。これらの2つを選択すると、データにアクセスするときにProvider.ofを使用するが、UIを変更する必要がないことをドキュメントから理解しています(私はそう思います)。したがって、以下は(ドキュメントから取得)データにアクセスし、新しいイベントでUIを更新します。 return HumongousWidget( // ... child: AnotherMonstrousWidget(// <- This widget will rebuild on new data events // ... child: Consumer<CartModel>( builder: (context, cart, child) { return Text('Total price: ${cart.totalPrice}'); }, ), ), ); 一方、データのみが必要な場合は、UIで再構築したくないので、次のようにパラメーターをに設定して使用Provider.of<X>します。listenfalse Provider.of<CartModel>(context, listen: false).add(item); \\Widget won't rebuild ただし、listen必須ではないため、以下も実行されます。 Provider.of<CartModel>(context).add(item); \\listener optional だから、これは私にいくつかの質問をもたらします: これは、区別するための正しい方法であるProvider.of<X>とConsumer<X>。元はUIを更新しませんが、後者は更新しますか? にlisten設定されていない場合false、ウィジェットはデフォルトで再構築されるか、再構築されませんか?にlisten設定されている場合はどうなりtrueますか? なぜProvider.ofUIを再構築するオプションがあるのConsumerですか?