د 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),
        ),
      ],
    );
  }
}
د Consumer داخلي منطق بیاجوړونې د post-frame تر پړاو پورې مهال‌بندي کوي، او د build پر مهال د setState ستونزې کموي.
WidgetRef.watch یوازې د هغو ارزښتونو لپاره وکاروئ چې باید بیاجوړونه را وپاروي.
Side effects د build څخه بهر وساتئ؛ callbacks او invoke/refresh میتودونه وکاروئ.

راتلونکې ګامونه

ازموینه

په unit او widget ازموینو کې د container ژوند‌دوره، overrides، او غیرهم‌مهاله تازه‌کېدنې تایید کړئ.

ازموینه پرانیزئ

API مرجع

د ProviderScope، WidgetRef، او container میتودونو لاسلیکونه وګورئ.

د API مرجع پرانیزئ