Leespaden: watch, read en listen.

Provider levert synchrone status. AsyncProvider retourneert AsyncValue en kan Future en Stream blootstellen met strikte levenscyclusafhandeling.

Provider-typen

Kies het type provider op basis van databron en updatefrequentie.

Provider<T>

Synchrone waarden en lokale afgeleide status

AsyncProvider<T>

Future/Stream-gestuurde status als AsyncValue<T>

provider.future

Selector die Provider<Future<T>> blootstelt

Tip

Als de status uit het netwerk of een stream komt, geef dan de voorkeur aan AsyncProvider. Houd Provider voor puur synchrone logica.

Lees-API Matrix

Gebruik watch in build-paden, read voor eenmalige toegang en listen voor side effects.

Meest voorkomend

watch / read / listen

ref.watch(provider)  : abonneer en rebuild wanneer de waarde verandert.
ref.read(provider)   : lees de huidige snapshot zonder te abonneren.
container.listen(...) : updates op basis van callbacks; optioneel fireImmediately.

Future en Stream met AsyncProvider

Een enkele AsyncProvider kan een Future retourneren of een Stream binden 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) annuleert de eerdere inschrijving bij rebuild, invalidate en dispose.
AsyncValue is een sealed class: AsyncLoading / AsyncData / AsyncError.
Pattern matching met switch houdt de loading/error-UI expliciet.

Volgende stappen

Mutations

Verplaats schrijfoperaties naar provider-methoden en voer ze uit via ref.invoke.

Open mutations-gids

Flutter-API

Kies tussen Consumer, ConsumerWidget en ConsumerStatefulWidget.

Open Flutter-API