පැහැදිලි 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),
),
],
);
}
}
ඊළඟ පියවර
පරීක්ෂණ
unit සහ widget පරීක්ෂණවලදී container ජීවන චක්රය, overrides, සහ අසමකාලීන යාවත්කාලීන සත්යාපනය කරන්න.
පරීක්ෂණ විවෘත කරන්න