Bralne poti: watch, read in listen.
Provider daje sinhrono stanje. AsyncProvider vrne AsyncValue in lahko izpostavi Future in Stream s strogim upravljanjem življenjskega cikla.
Tipi providerjev
Izberite tip providera glede na vir podatkov in frekvenco posodobitev.
Provider<T>
Sinhrone vrednosti in lokalno izpeljano stanje
AsyncProvider<T>
Stanje, gnano z Future/Stream, kot AsyncValue<T>
provider.future
Izbirnik, ki izpostavi Provider<Future<T>>
Namig
Če stanje prihaja iz omrežja ali streama, najprej izberite AsyncProvider. Provider obdržite za čisto sinhrono logiko.
Matrika API za branje
Uporabljajte watch v build poteh, read za enkratni dostop in listen za stranske učinke.
Najpogostejše
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 in Stream z AsyncProvider
En sam AsyncProvider lahko vrne Future ali poveže Stream prek 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);
Naslednji koraki
Mutations
Premaknite zapisovalne operacije v metode providera in jih izvedite prek ref.invoke.
Odpri Mutations