اذهب إلى المحتوى
  • 0

كيفية حل كل ما ورد في الـ Saga (React Native)

عمر سالم2

السؤال

مرحباً،

أعمل على عمل state management باستخدام Redux Saga ولكن عندي مشكلة انه اريد عمل middleware ليحل كل الـ sagas الموجودة عندي.

لقد قمت باستخدام Promise.all ولكنها لم تعمل.

import authSagas from './auth/sagas';
import notificationSagas from './notification/sagas';

function rootSagas() {
	Promise.all([...authSagas, notificationSagas]);
}

export default rootSagas;

 

تم التعديل في بواسطة عمر سالم2
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

تتكون حلقة الـ Redux Saga من الـ JavaScript Generators. كما تعلم، فعند إنشاء، على سبيل المثال، ساجا للـ Auth بالشكل التالي لعمل تسجيل خروج للمستخدم:

function* requestLogout() {
	const isLogged = yield select(authSelectors.isLogged);

	if (isLogged) {
		yield call(authModels.logout);
	}

	yield put(authActions.logout());
}

ستلاحظ أن كل شئ يتم تمريره ياستخدام الـ Effects مثل call و put مع الـ generators عن طريق yield.

بكل بساطة، القيم العائدة من الـ yields هي نوع من التعليمات في شكل كائنات (object) ليستطيع Redux Saga تمريرها للـ saga التالية. لذا، عند عمل الـ root saga للتطبيق، يحب أولاً تحويل الدالة الى generator واستخدام التأثير all:

function* rootSagas() {
	yield all([...authSagas, ...notificationSagas]);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...