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);
ref.emit(stream) pri rebuild, invalidate a dispose ruší predchádzajúce odberanie.
AsyncValue je sealed class: AsyncLoading / AsyncData / AsyncError.
Pattern matching so switch udržiava UI načítania/chýb explicitné.

Ďalšie kroky

Mutations

Presuňte zápisové operácie do metód providera a spúšťajte ich cez ref.invoke.

Otvoriť Mutations

Flutter API

Vyberte si medzi Consumer, ConsumerWidget a ConsumerStatefulWidget.

Otvoriť API Reference