స్పష్టమైన 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 tests లో, పెండింగ్ timer leaks ను నివారించడానికి బాహ్యంగా inject చేసిన ProviderContainer ను dispose చేయడం మర్చిపోకండి.
Consumer వేరియంట్లు
అన్ని ఎంపికలు WidgetRef ను అందుబాటులో ఉంచుతాయి; widget శైలి మరియు స్థానిక state అవసరాల ప్రకారం ఎంచుకోండి.
యాప్ మూలం
ప్రతి దానిని ఎప్పుడు ఉపయోగించాలి
Consumer: చిన్న reactive ప్రాంతాల కోసం local builder block.
ConsumerWidget: build(context, ref) ఉన్న stateless widget.
ConsumerStatefulWidget: ConsumerState లో ref ఉన్న stateful widget.
ఉదాహరణ: 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 tests లో container lifecycle, overrides, మరియు async updates ని నిర్ధారించండి.
పరీక్షలను తెరవండిAPI సూచన
ProviderScope, WidgetRef, మరియు container methods యొక్క signatures చూడండి.
API సూచన తెరవండి