Putovi čitanja: watch, read i listen.

Provider daje sinkrono stanje. AsyncProvider vraća AsyncValue i može izložiti Future i Stream uz strogo upravljanje životnim ciklusom.

Tipovi providera

Odaberite tip providera prema izvoru podataka i učestalosti ažuriranja.

Provider<T>

Sinkrone vrijednosti i lokalno izvedeno stanje

AsyncProvider<T>

Stanje vođeno Future/Streamom kao AsyncValue<T>

provider.future

Selektor koji izlaže Provider<Future<T>>

Savjet

Ako stanje dolazi iz mreže ili streama, prvo odaberite AsyncProvider. Zadržite Provider za čistu sinkronu logiku.

Matrica API-ja za čitanje

Koristite watch u build putovima, read za jednokratni pristup i listen za sporedne učinke.

Najčešće

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 i Stream s AsyncProviderom

Jedan AsyncProvider može vratiti Future ili povezati Stream preko 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 i dispose prekida prethodnu pretplatu.
AsyncValue je sealed class: AsyncLoading / AsyncData / AsyncError.
Uspoređivanje uzoraka sa switchom zadržava UI učitavanja/grešaka eksplicitnim.

Sljedeći koraci

Mutations

Premjestite operacije pisanja u metode providera i izvršavajte ih preko ref.invoke.

Otvori Flutter API

Flutter API

Birajte između Consumer, ConsumerWidget i ConsumerStatefulWidget.

Otvori API Reference