Lestrarleiðir: watch, read og listen.

Provider gefur samstillta stöðu. AsyncProvider skilar AsyncValue og getur birt Future og Stream með strangri lífsferilsmeðhöndlun.

Provider-tegundir

Veldu provider-tegund eftir gagnagjafa og uppfærslutíðni.

Provider<T>

Samstillt gildi og staðbundin afleidd staða

AsyncProvider<T>

Staða drifin af Future/Stream sem AsyncValue<T>

provider.future

Selector sem birtir Provider<Future<T>>

Ábending

Ef staða kemur frá neti eða stream skaltu velja AsyncProvider fyrst. Haltu Provider fyrir hreina samstillta rökfræði.

Lestrar-API fylki

Notaðu watch í build-leiðum, read fyrir staka uppflettingu og listen fyrir side effects.

Algengast

watch / read / listen

ref.watch(provider)  : gerast áskrifandi og rebuild-a þegar gildi breytist.
ref.read(provider)   : lesa núverandi snapshot án áskriftar.
container.listen(...) : callback-drifnar uppfærslur; valfrjálst fireImmediately.

Future og Stream með AsyncProvider

Einn AsyncProvider getur skilað Future eða bundið Stream með 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: 'Hleður...');
}, autoDispose: true, autoDisposeDelay: const Duration(milliseconds: 250));

// Bíða sem Future
final user = await ref.watch(currentUser.future);
ref.emit(stream) afturkallar fyrri áskrift við rebuild, invalidate og dispose.
AsyncValue er sealed class: AsyncLoading / AsyncData / AsyncError.
Mynsturgreining með switch heldur loading/error UI skýru.

Næstu skref

Mutation-aðgerðir

Færðu skrifaðgerðir inn í provider-aðferðir og keyrðu með ref.invoke.

Opna mutation-aðgerðir

Flutter API

Veldu á milli Consumer, ConsumerWidget og ConsumerStatefulWidget.

Opna Flutter API