اقرأ المسارات: شاهد، واقرأ، واستمع.
المزود يوفر حالة متزامنة. يعيد 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.
التعرف على الأنماط مع مفتاح التبديل يحافظ على واجهة التحميل/الخطأ.
الخطوات التالية
Flutter API
اختر بين Consumer و ConsumerWidget و ConsumerStatefulWidget.
افتح واجهة برمجة تطبيقات فلاتر