පැහැදිලි container හිමිකම සහිත Flutter ඒකාබද්ධතාවය.

ProviderScope එක container එකක් හිමිකරගත හැකිය, හෝ පිටතින් එකක් ලබාගත හැකිය. Consumer APIs WidgetRef ප්‍රවේශය Riverpod-ශෛලී කේතය සමඟ ගැළපෙන ලෙස තබයි.

ProviderScope හි හිමිකාරත්වය

Container හිමිකම disposal වගකීම වෙනස් කරයි.

අභ්‍යන්තර container

ProviderScope(child: ...) ස්වයංක්‍රීයව dispose වේ

බාහිර container

ProviderScope(container: c, ...) සඳහා ඇමතුම්කරු විසින් c.dispose() කළ යුතුය

පාලනය නොකළ scope

UncontrolledProviderScope කිසිවිටෙක container එක dispose නොකරයි

සාමාන්‍ය වැරැද්ද

widget පරීක්ෂණවලදී, බාහිරව ඇතුළත් කළ ProviderContainer එක dispose කිරීමට මතක තබා ගන්න, ඉතිරි timer leaks වළක්වා ගැනීමට.

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 භාවිතා කරන්න නැවත ගොඩනැගීම් ආරම්භ කළ යුතු අගයන් සඳහා පමණි.
build එකෙන් පිටත side effects තබා ගන්න; callbacks සහ invoke/refresh ක්‍රම භාවිතා කරන්න.

ඊළඟ පියවර

පරීක්ෂණ

unit සහ widget පරීක්ෂණවලදී container ජීවන චක්‍රය, overrides, සහ අසමකාලීන යාවත්කාලීන සත්‍යාපනය කරන්න.

පරීක්ෂණ විවෘත කරන්න

API යොමුව

ProviderScope, WidgetRef, සහ container ක්‍රම සඳහා අත්සන් බලන්න.

API යොමුව විවෘත කරන්න