Cesty čtení: watch, read a listen.
Provider poskytuje synchronní stav. AsyncProvider vrací AsyncValue a může vystavit Future i Stream se striktní správou životního cyklu.
Typy providerů
Zvolte typ providera podle zdroje dat a frekvence aktualizací.
Provider<T>
Synchronní hodnoty a lokálně odvozený stav
AsyncProvider<T>
Stav řízený Future/Stream jako AsyncValue<T>
provider.future
Selektor, který vystavuje Provider<Future<T>>
Tip ke čtení
Pokud stav pochází ze sítě nebo streamu, nejdřív zvolte AsyncProvider. Provider ponechte pro čistou synchronní logiku.
Matice API pro čtení
Používejte watch v build cestách, read pro jednorázové čtení a listen pro vedlejší efekty.
Nejběžnější
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 a Stream s AsyncProvider
Jediný AsyncProvider může vrátit Future nebo připojit Stream přes 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);
Další kroky
Mutations
Přesuňte zápisové operace do metod providera a spouštějte je přes ref.invoke.
Otevřít Flutter API