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