Integrim Flutter me pronësi të qartë të container-it.
ProviderScope mund të zotërojë një container ose të marrë një nga jashtë. API-të e Consumer e mbajnë qasjen te WidgetRef të përputhshme me kodin në stilin Riverpod.
Pronësia e ProviderScope
Pronësia e container-it ndryshon përgjegjësinë për lirimin.
Container i brendshëm
ProviderScope(child: ...) lirohet automatikisht
Container i jashtëm
ProviderScope(container: c, ...) kërkon që c.dispose() të thirret nga thirrësi
Scope i pakontrolluar
UncontrolledProviderScope kurrë nuk e liron container-in
Kurth i zakonshëm
Në testet e widget-it, mos harroni të lironi ProviderContainer-in e injektuar nga jashtë për të shmangur rrjedhje të timer-ave në pritje.
Variantet Consumer
Të gjitha opsionet ekspozojnë WidgetRef; zgjidhni sipas stilit të widget-it dhe nevojave të gjendjes lokale.
Rrënja e aplikacionit
Kur të përdoret secili
Consumer: local builder block for small reactive areas.
ConsumerWidget: stateless widget with build(context, ref).
ConsumerStatefulWidget: stateful widget with ref inside ConsumerState.
Shembull: ConsumerStatefulWidget
Përdorni ConsumerState kur ju duhen si WidgetRef ashtu edhe gjendja lokale e ndryshueshme e UI-së.
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),
),
],
);
}
}
Hapat e ardhshëm
Testim
Vërtetoni ciklin e jetës së container-it, overrides dhe përditësimet asinkrone në testet unit dhe widget.
Hapni testiminReferenca e API-së
Shihni nënshkrimet për ProviderScope, WidgetRef dhe metodat e container-it.
Hapni referencën e API-së