Cesty čítania: watch, read a listen.
Provider poskytuje synchronný stav. AsyncProvider vracia AsyncValue a môže vystaviť Future aj Stream so striktým spracovaním životného cyklu.
Typy providerov
Vyberte typ providera podľa zdroja dát a frekvencie aktualizácií.
Provider<T>
Synchrónne hodnoty a lokálne odvodený stav
AsyncProvider<T>
Stav riadený Future/Stream ako AsyncValue<T>
provider.future
Selektor, ktorý vystavuje Provider<Future<T>>
Tip na čítanie
Ak stav pochádza zo siete alebo streamu, najprv zvoľte AsyncProvider. Provider nechajte pre čistú synchrónnu logiku.
Matica API na čítanie
Používajte watch v build cestách, read na jednorazové čítanie a listen na vedľajšie efekty.
Najčastejšie
watch / read / listen
ref.watch(provider) : subscribe and rebuild when value changes.
ref.read(provider) : read current snapshot without subscribing.
container.listen(...) : callback-driven updates; optional fireImmediately.
Future a Stream s AsyncProvider
Jediný AsyncProvider môže vrátiť Future alebo pripojiť Stream cez ref.emit(stream).
final currentUser = AsyncProvider<User>((ref) async {
final api = ref.watch(apiProvider);
return api.me();
});
final liveUser = AsyncProvider<User>((ref) {
final stream = ref.watch(apiProvider).live();
ref.emit(stream);
return const User(name: 'Loading...');
}, autoDispose: true, autoDisposeDelay: const Duration(milliseconds: 250));
// Await as Future
final user = await ref.watch(currentUser.future);
Ďalšie kroky
Mutations
Presuňte zápisové operácie do metód providera a spúšťajte ich cez ref.invoke.
Otvoriť MutationsFlutter API
Vyberte si medzi Consumer, ConsumerWidget a ConsumerStatefulWidget.
Otvoriť API Reference