Bralne poti: watch, read in listen.

Provider daje sinhrono stanje. AsyncProvider vrne AsyncValue in lahko izpostavi Future in Stream s strogim upravljanjem življenjskega cikla.

Tipi providerjev

Izberite tip providera glede na vir podatkov in frekvenco posodobitev.

Provider<T>

Sinhrone vrednosti in lokalno izpeljano stanje

AsyncProvider<T>

Stanje, gnano z Future/Stream, kot AsyncValue<T>

provider.future

Izbirnik, ki izpostavi Provider<Future<T>>

Namig

Če stanje prihaja iz omrežja ali streama, najprej izberite AsyncProvider. Provider obdržite za čisto sinhrono logiko.

Matrika API za branje

Uporabljajte watch v build poteh, read za enkratni dostop in listen za stranske učinke.

Najpogostejš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 in Stream z AsyncProvider

En sam AsyncProvider lahko vrne Future ali poveže Stream prek 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) ob rebuild, invalidate in dispose prekine prejšnjo naročnino.
AsyncValue je sealed class: AsyncLoading / AsyncData / AsyncError.
Ujemanje vzorcev s switch ohranja UI nalaganja/napak eksplicitno.

Naslednji koraki

Mutations

Premaknite zapisovalne operacije v metode providera in jih izvedite prek ref.invoke.

Odpri Mutations

Flutter API

Izberite med Consumer, ConsumerWidget in ConsumerStatefulWidget.

Odpri API Reference