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);
Hatua zinazofuata
Mutations
Hamisha shughuli za kuandika ndani ya mbinu za provider na zitekeleze kupitia ref.invoke.
Fungua MutationsFlutter API
Chagua kati ya Consumer, ConsumerWidget, na ConsumerStatefulWidget.
Fungua API Reference