Роҳҳои хондан: watch, read ва listen.
Provider ҳолати синхронӣ медиҳад. AsyncProvider AsyncValue бармегардонад ва метавонад Future ва Stream-ро бо идоракунии қатъии давраи ҳаёт пешкаш кунад.
Навъҳои Provider
Навъи provider-ро аз рӯи манбаи дода ва басомади навсозӣ интихоб кунед.
Provider<T>
Қиматҳои синхронӣ ва ҳолати маҳаллии ҳосилшуда
AsyncProvider<T>
Ҳолат ҳамчун AsyncValue<T> аз Future/Stream
provider.future
Интихобкунандае, ки Provider<Future<T>>-ро мекушояд
Маслиҳат
Агар ҳолат аз шабака ё stream ояд, аввал AsyncProvider-ро афзал донед. Барои мантиқи сирф синхронӣ Provider-ро нигоҳ доред.
Ҷадвали API барои хондан
Дар роҳҳои build барои watch, барои дастрасии якдафъаина read ва барои таъсирҳои паҳлӯӣ listen-ро истифода баред.
Аз ҳама маъмул
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 ва Stream бо AsyncProvider
Як AsyncProvider метавонад Future баргардонад ё тавассути ref.emit(stream) ба 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);
Қадамҳои баъдӣ
Mutations
Амалиётҳои навиштанро ба методҳои провайдер интиқол диҳед ва онҳоро тавассути ref.invoke иҷро кунед.
Кушодани тағйирҳоFlutter API
Миёни Consumer, ConsumerWidget ва ConsumerStatefulWidget интихоб кунед.
Кушодани API-и Flutter