Njia za kusoma: watch, read, na listen.

Provider hutoa state ya kusawazishwa. AsyncProvider hurudisha AsyncValue na inaweza kufichua Future na Stream kwa utunzaji mkali wa mzunguko wa maisha.

Aina za provider

Chagua aina ya provider kulingana na chanzo cha data na marudio ya masasisho.

Provider<T>

Thamani za kusawazishwa na state ya ndani inayotokana

AsyncProvider<T>

State inayoendeshwa na Future/Stream kama AsyncValue<T>

provider.future

Kichagua kinachoonyesha Provider<Future<T>>

Kidokezo

Ikiwa state inatoka mtandaoni au stream, pendelea kwanza AsyncProvider. Hifadhi Provider kwa mantiki safi ya kusawazishwa.

Jedwali la API ya kusoma

Tumia watch katika njia za build, read kwa ufikiaji wa mara moja, na listen kwa athari za pembeni.

Ya kawaida zaidi

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 na Stream kwa AsyncProvider

AsyncProvider moja inaweza kurudisha Future au kuunganisha Stream kupitia 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) hufuta usajili wa awali wakati wa rebuild, invalidate, na dispose.
AsyncValue ni sealed class: AsyncLoading / AsyncData / AsyncError.
Ulinganifu wa mifumo kwa switch huifanya UI ya kupakia/kosa kuwa wazi.

Hatua zinazofuata

Mutations

Hamisha shughuli za kuandika ndani ya mbinu za provider na zitekeleze kupitia ref.invoke.

Fungua Mutations

Flutter API

Chagua kati ya Consumer, ConsumerWidget, na ConsumerStatefulWidget.

Fungua API Reference