اقرأ المسارات: شاهد، واقرأ، واستمع.

المزود يوفر حالة متزامنة. يعيد AsyncProvider قيمة AsyncValue ويمكنه الكشف عن Future و Stream مع معالجة صارمة للحياة.

أنواع المزودين

اختر نوع المزود حسب مصدر البيانات وتكرار التحديث.

Provider<T>

قيم متزامنة وحالة محلية مشتقة

AsyncProvider<T>

الحالة المستقبلية/القائمة على التدفق كـ AsyncValue<T>

provider.future

المحدد الذي يعرض Provider<Future<T>>

تلميح

إذا كانت الحالة تأتي من الشبكة أو التدفق، فاستخدم AsyncProvider أولاً. احتفظ بـ Provider للمنطق المتزامن النقي.

اقرأ مصفوفة واجهة برمجة التطبيقات

استخدم المراقبة في مسارات البناء، واقرأ للوصول مرة واحدة، واستمع إلى الآثار الجانبية.

الأكثر شيوعًا

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.

المستقبل و Stream مع AsyncProvider

يمكن للموفر غير المتزامن إرجاع Future أو ربط Stream عبر 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) يلغي الاشتراك السابق عند إعادة البناء، أو عند إلغاء التفعيل، أو عند التخلص.
AsyncValue هو فئة مُغلقة: AsyncLoading / AsyncData / AsyncError.
التعرف على الأنماط مع مفتاح التبديل يحافظ على واجهة التحميل/الخطأ.

الخطوات التالية

Mutations

نقل عمليات الكتابة إلى طرق المزود وتنفيذها عبر ref.invoke.

تغييرات مفتوحة

Flutter API

اختر بين Consumer و ConsumerWidget و ConsumerStatefulWidget.

افتح واجهة برمجة تطبيقات فلاتر