স্পষ্ট container মালিকানাসহ Flutter ইন্টিগ্রেশন।
ProviderScope একটি container-এর মালিক হতে পারে বা বাইরে থেকে একটি পেতে পারে। Consumer API-গুলো WidgetRef access-কে Riverpod-স্টাইল কোডের সঙ্গে সামঞ্জস্যপূর্ণ রাখে।
ProviderScope-এর মালিকানা
Container মালিকানা dispose-এর দায়িত্ব বদলে দেয়।
অভ্যন্তরীণ container
ProviderScope(child: ...) স্বয়ংক্রিয়ভাবে dispose করে
বাহ্যিক container
ProviderScope(container: c, ...) এর জন্য caller-কে c.dispose() করতে হয়
অনিয়ন্ত্রিত scope
UncontrolledProviderScope কখনও container dispose করে না
সাধারণ ভুল
widget test-এ pending timer leak এড়াতে বাইরে থেকে inject করা ProviderContainer dispose করতে ভুলবেন না।
Consumer ভ্যারিয়েন্ট
সব বিকল্প WidgetRef প্রকাশ করে; widget-এর ধরন এবং local state-এর প্রয়োজন অনুযায়ী বেছে নিন।
অ্যাপের মূল
প্রতিটা কখন ব্যবহার করবেন
Consumer: ছোট reactive এলাকার জন্য local builder ব্লক।
ConsumerWidget: build(context, ref) সহ stateless widget.
ConsumerStatefulWidget: ConsumerState-এর ভিতরে ref সহ stateful widget.
উদাহরণ: ConsumerStatefulWidget
যখন WidgetRef এবং local mutable UI state দুটোই দরকার হয়, তখন ConsumerState ব্যবহার করুন।
class HomePage extends ConsumerStatefulWidget {
const HomePage({super.key});
@override
ConsumerState<HomePage> createState() => _HomePageState();
}
class _HomePageState extends ConsumerState<HomePage> {
bool expanded = false;
@override
Widget build(BuildContext context) {
final user = ref.watch(currentUser);
return Column(
children: [
Text('$user'),
Switch(
value: expanded,
onChanged: (v) => setState(() => expanded = v),
),
],
);
}
}
পরবর্তী পদক্ষেপ
Testing
unit এবং widget test-এ container lifecycle, override এবং async আপডেট যাচাই করুন।
Testing খুলুন