Integrasyon ng Flutter na may malinaw na pagmamay-ari ng container.
Maaaring angkinin ng ProviderScope ang isang container o tumanggap ng isa mula sa labas. Pinananatiling tugma ng mga API ng Consumer ang access sa WidgetRef sa kodigong istilong Riverpod.
Pagmamay-ari ng ProviderScope
Binabago ng pagmamay-ari ng container ang pananagutan sa disposal.
Panloob na container
ProviderScope(child: ...) ay awtomatikong nagdi-dispose
Panlabas na container
ProviderScope(container: c, ...) ay nangangailangang ang tumatawag ang mag-dispose sa c
Hindi kontroladong scope
Hindi kailanman dini-dispose ng UncontrolledProviderScope ang container
Karaniwang patibong
Sa mga widget test, tandaan na i-dispose ang ProviderContainer na ininject mula sa labas upang maiwasan ang mga leak ng nakabinbing timer.
Mga Variant ng Consumer
Ipinapakita ng lahat ng opsyon ang WidgetRef; pumili batay sa estilo ng widget at sa pangangailangan ng lokal na estado.
Root ng app
Kailan gagamitin ang bawat isa
Consumer: lokal na builder block para sa maliliit na reactive na bahagi.
ConsumerWidget: stateless widget na may build(context, ref).
ConsumerStatefulWidget: stateful widget na may ref sa loob ng ConsumerState.
Halimbawa: ConsumerStatefulWidget
Gamitin ang ConsumerState kapag kailangan mo ang WidgetRef at lokal na nababagong UI state.
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),
),
],
);
}
}
Mga Susunod na Hakbang
Pagsubok
Suriin ang lifecycle ng container, mga override, at async na mga update sa mga unit at widget test.
Buksan ang PagsubokSanggunian ng API
Tingnan ang mga signature para sa ProviderScope, WidgetRef, at mga method ng container.
Buksan ang Sanggunian ng API