পড়ার পথ: watch, read এবং listen।

Provider sync state দেয়। AsyncProvider AsyncValue ফেরত দেয় এবং কঠোর lifecycle handling সহ Future ও Stream প্রকাশ করতে পারে।

Provider-এর ধরন

data source এবং update frequency অনুযায়ী provider type বেছে নিন।

Provider<T>

সিঙ্ক্রোনাস values এবং local derived state

AsyncProvider<T>

Future/Stream-চালিত state হিসেবে AsyncValue<T>

provider.future

এমন selector যা Provider<Future<T>> expose করে

পরামর্শ

state যদি network বা stream থেকে আসে, আগে AsyncProvider বেছে নিন। Provider-কে pure synchronous logic-এর জন্য রাখুন।

পড়ার API ম্যাট্রিক্স

build paths-এ watch, one-shot access-এর জন্য read, এবং side effects-এর জন্য 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.

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-কে স্পষ্ট রাখে।

পরবর্তী পদক্ষেপ

Mutations

write operations provider methods-এ সরান এবং ref.invoke দিয়ে চালান।

Flutter API খুলুন

Flutter API

Consumer, ConsumerWidget, এবং ConsumerStatefulWidget-এর মধ্যে বেছে নিন।

API রেফারেন্স খুলুন