Lugemisteed: watch, read ja listen.
Provider annab sünkroonse oleku. AsyncProvider tagastab AsyncValue ja võib pakkuda Future'i ja Streami range elutsükli haldusega.
Provideri tüübid
Vali provideri tüüp andmeallika ja värskendussageduse järgi.
Provider<T>
Sünkroonsed väärtused ja lokaalne tuletatud olek
AsyncProvider<T>
Future/Streamiga juhitud olek AsyncValue<T>-na
provider.future
Parinkiklis, atskleidžiantis Provider<Future<T>>
Vihje
Kui olek tuleb võrgust või streamist, eelista esmalt AsyncProviderit. Hoia Provider puhta sünkroonse loogika jaoks.
Lugemise API maatriks
Kasuta watch'i buildi teedes, read'i ühekordseks ligipääsuks ja listen'i kõrvalmõjude jaoks.
Kõige tavalisem
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 ja Stream AsyncProvideriga
Üks AsyncProvider võib tagastada Future'i või siduda Streami läbi 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);
Järgmised sammud
Mutations
Tõsta kirjutamisoperatsioonid provideri meetoditesse ja käivita need ref.invoke kaudu.
Ava Flutter API