Olvasási utak: watch, read és listen.
A Provider szinkron állapotot ad. Az AsyncProvider AsyncValue-t ad vissza, és Future-t és Streamet is exponálhat szigorú életciklus-kezeléssel.
Providertípusok
Válaszd ki a providertípust az adatforrás és a frissítési gyakoriság alapján.
Provider<T>
Szinkron értékek és helyben levezetett állapot
AsyncProvider<T>
Future/Stream által vezérelt állapot AsyncValue<T>-ként
provider.future
Olyan szelekor, amely kiadja a Provider<Future<T>>-t
Tipp
Ha az állapot hálózatból vagy streamből jön, először az AsyncProvider-t válaszd. A Provider maradjon a tisztán szinkron logikához.
API-olvasási mátrix
A build utakban használj watch-ot, egyszeri hozzáféréshez read-et, mellékhatásokhoz listen-t.
Leggyakoribb
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 és Stream AsyncProviderral
Egyetlen AsyncProvider visszaadhat Future-t, vagy Streamet köthet a ref.emit(stream) segítségével.
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);
Következő lépések
Mutations
Helyezd az írási műveleteket provider-metódusokba, és futtasd őket ref.invoke segítségével.
Flutter API megnyitásaFlutter API
Válassz a Consumer, ConsumerWidget és ConsumerStatefulWidget közül.
API Reference megnyitása