Läsvägar: watch, read och listen.

Provider ger synkront tillstånd. AsyncProvider returnerar AsyncValue och kan exponera Future och Stream med strikt lifecycle-hantering.

Providertyper

Välj providertyp efter datakälla och uppdateringsfrekvens.

Provider<T>

Synkrona värden och lokalt härledd state

AsyncProvider<T>

Future-/Stream-driven state som AsyncValue<T>

provider.future

Selektor som exponerar Provider<Future<T>>

Tips

Om state kommer från nätverk eller stream, välj först AsyncProvider. Behåll Provider för ren synkron logik.

Läs API-matris

Använd watch i build-vägar, read för engångsåtkomst och listen för sidoeffekter.

Mest vanligt

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 och Stream med AsyncProvider

En enda AsyncProvider kan returnera en Future eller binda en Stream via 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);
ref.emit(stream) avbryter den tidigare prenumerationen vid ombyggnad, invalidate och dispose.
AsyncValue är en sealed class: AsyncLoading / AsyncData / AsyncError.
Mönstermatchning med switch gör laddnings-/fel-UI tydlig.

Nasta steg

Mutations

Flytta skrivoperationer till provider-metoder och kör dem via ref.invoke.

Oppna Mutations

Flutter API

Välj mellan Consumer, ConsumerWidget och ConsumerStatefulWidget.

Öppna API Reference