د Flutter یوځایکېدنه د container د څرګند ملکیت سره.
ProviderScope کولای شي د container مالک وي یا یې له بهر څخه ترلاسه کړي. د Consumer APIs د WidgetRef لاسرسی له Riverpod-ډول کوډ سره همغږی ساتي.
د ProviderScope ملکیت
د container ملکیت د لېرې کولو مسؤلیت بدلوي.
داخلي container
ProviderScope(child: ...) په اوتومات ډول لېرې کېږي
بهرنی container
ProviderScope(container: c, ...) د بلونکي له خوا د c.dispose() غوښتنه کوي
بېکنټروله scope
UncontrolledProviderScope هېڅکله container نه لېرې کوي
عامه تېروتنه
په widget ازموینو کې، په یاد ولرئ چې له بهر څخه داخل شوی ProviderContainer لېرې کړئ څو پاتې timer لیکونه رامنځته نه شي.
د Consumer ډولونه
ټول اختیارونه WidgetRef ښکاره کوي؛ د widget بڼې او ځايي state اړتیاوو له مخې یې وټاکئ.
د اپ رېښه
کله چې هر یو وکاروئ
Consumer: local builder block for small reactive areas.
ConsumerWidget: stateless widget with build(context, ref).
ConsumerStatefulWidget: stateful widget with ref inside ConsumerState.
بېلګه: ConsumerStatefulWidget
کله چې هم WidgetRef او هم ځايي بدلېدونکی 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),
),
],
);
}
}
راتلونکې ګامونه
ازموینه
په unit او widget ازموینو کې د container ژونددوره، overrides، او غیرهممهاله تازهکېدنې تایید کړئ.
ازموینه پرانیزئ