আমি এখনও বিড়বিড় করে স্টেট-ম্যানেজমেন্ট কৌশলগুলি সম্পর্কে আমার মাথা আবৃত করছি এবং Provider.of<X>
বনাম কখন এবং কেন ব্যবহার করব সে সম্পর্কে কিছুটা বিভ্রান্ত Consumer<X>
। ডকুমেন্টেশন থেকে আমি বুঝতে পারি (আমি মনে করি) যে এই দুটিয়ের মধ্যে বেছে নেওয়ার সময় আপনি সরবরাহকারী.অফ ব্যবহার করবেন যখন আমরা ডেটাতে অ্যাক্সেস চাইব, তবে আপনার পরিবর্তনের জন্য ইউআইয়ের দরকার নেই। সুতরাং নিম্নলিখিত (ডক্স থেকে নেওয়া) ডেটা অ্যাক্সেস পায় এবং নতুন ইভেন্টগুলিতে ইউআই আপডেট করে:
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>
সঙ্গে listen
থেকে প্যারামিটার সেট false
, নীচের হিসাবে:
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>
। প্রাক্তন ইউআই আপডেট করে না, পরে কি করে? - যদি
listen
সেট না করা থাকেfalse
তবে উইজেটটি ডিফল্টরূপে পুনর্নির্মাণ হবে বা পুনর্নির্মাণ হবে না? যদিlisten
সেট করা হয়true
? - কেন আমাদের কাছে
Provider.of
ইউআই পুনর্নির্মাণের বিকল্প রয়েছেConsumer
?