پڑھنے کے راستے: watch، read اور listen۔

Provider ہم وقت حالت دیتا ہے۔ AsyncProvider AsyncValue واپس کرتا ہے اور سخت lifecycle handling کے ساتھ Future اور Stream پیش کر سکتا ہے۔

provider کی اقسام

provider type کو data source اور update frequency کے مطابق منتخب کریں۔

Provider<T>

ہم وقت values اور local derived state

AsyncProvider<T>

Future/Stream-driven state بطور AsyncValue<T>

provider.future

selector جو Provider<Future<T>> expose کرتا ہے

مشورہ

اگر state network یا stream سے آتی ہو تو پہلے AsyncProvider کو ترجیح دیں۔ Provider کو خالص ہم وقت منطق کے لیے رکھیں۔

API پڑھنے کا matrix

watch کو build paths میں، read کو ایک بار کے access کے لیے اور listen کو side effects کے لیے استعمال کریں۔

سب سے عام

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.

AsyncProvider کے ساتھ Future اور Stream

ایک 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);
ref.emit(stream) rebuild، invalidate اور dispose پر پچھلی subscription کو منسوخ کرتا ہے۔
AsyncValue ایک sealed class ہے: AsyncLoading / AsyncData / AsyncError۔
switch کے ساتھ pattern matching loading/error UI کو واضح رکھتی ہے۔

aglay marahil

Mutations

write operations کو provider methods میں منتقل کریں اور انہیں ref.invoke سے چلائیں۔

Mutations kholen

Flutter API

Consumer، ConsumerWidget اور ConsumerStatefulWidget کے درمیان انتخاب کریں۔

API Reference کھولیں