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

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

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

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

مزود

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

مزود غير متزامن

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

مستقبل المزود

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

تلميح

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

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

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

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

شاهد / اقرأ / استمع

إعادة مشاهدة (مزود الخدمة) : الاشتراك وإعادة البناء عند تغيير القيمة.
قراءة (مزود الخدمة) : قراءة النقطة الحالية دون الاشتراك.
استماع إلى (container...) : تحديثات مدفوعة؛ اختياريًا، تشغيل فوري.

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

يمكن للموفر غير المتزامن إرجاع Future أو ربط Stream عبر ref.emit(stream).

final currentUser = AsyncProvider<User>((ref) {
  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: 'تحميل...');
}, autoDispose: true, autoDisposeDelay: const Duration(milliseconds: 250));

// انتظر كـ Future
final user = await ref.watch(currentUser.future);
ref.emit(stream) يلغي الاشتراك السابق عند إعادة البناء، أو عند إلغاء التفعيل، أو عند التخلص.
AsyncValue هو فئة مُغلقة: AsyncLoading / AsyncData / AsyncError.
التعرف على الأنماط مع مفتاح التبديل يحافظ على واجهة التحميل/الخطأ.

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

ProviderScope

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

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

قراءة المزودين

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

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