Lukupolut: watch, read ja listen.
Provider tarjoaa synkronisen tilan. AsyncProvider palauttaa AsyncValue-arvon ja voi tarjota Future- ja Stream-rajapinnan tiukalla elinkaarikäsittelyllä.
Providertyypit
Valitse providertype tietolähteen ja päivitystiheyden mukaan.
Provider<T>
Synkroniset arvot ja paikallisesti johdettu tila
AsyncProvider<T>
Future-/Stream-ohjattu tila AsyncValue<T>:nä
provider.future
Valitsin, joka paljastaa Provider<Future<T>>-arvon
Vinkki
Jos tila tulee verkosta tai streamistä, suosi ensin AsyncProvideria. Pidä Provider puhtaalle synkroniselle logiikalle.
Lue API-matriisi
Käytä watchia build-polkuissa, readia kertakäyttöiseen lukuun ja listeniä sivuvaikutuksiin.
Yleisin
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 AsyncProviderin kanssa
Yksi AsyncProvider voi palauttaa Future-arvon tai sitoa Streamin ref.emit(stream) -kutsulla.
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);
Seuraavat askeleet
Mutations
Siirrä kirjoitusoperaatiot provider-metodeihin ja suorita ne ref.invoke-kutsulla.
Avaa Flutter APIFlutter API
Valitse Consumerin, ConsumerWidgetin ja ConsumerStatefulWidgetin välillä.
Avaa API Reference