أنا أعمل على تطبيق ويب يستخدم React مع Redux. لقد قمت بنشر رسالة مماثلة على موقع redux-thunk Github ، لكنني أعتقد أن هذا قد يكون مشكلة عامة مع برنامج Redux الوسيطة. أستخدم حاليًا Redux-Thunk بطريقة مشابهة جدًا للمثال الموجود هنا:
http://redux.js.org/docs/advanced/ExampleRedditAPI.html
عند تشغيل تطبيقي ، أرى الخطأ التالي في Chrome:
Uncaught RangeError: Maximum call stack size exceeded
(anonymous function) @ index.js:10
dispatch @ applyMiddleware.js:44
(anonymous function) @ index.js:12
dispatch @ applyMiddleware.js:44
(anonymous function) @ index.js:12
dispatch @ applyMiddleware.js:44
(anonymous function) @ index.js:12
dispatch @ applyMiddleware.js:44
هذا رابط لمشروعي:
https://github.com/jbri7357/redux-sample-app
أود أن أقول أنه نظرًا لمستوى استخدامها ، فمن غير المرجح أن تكون مشكلة مع Redux أو Redux Thunk ، ومن المرجح أن تكون خطأ خفيًا في كود التطبيق.
من الصعب التشخيص من المصدر وحده. إذا كان بإمكانك نشر مشروع يعيد إنتاج المشكلة ، فسيكون ذلك مفيدًا.
القضية هنا :
const mapDispatchToProps = (dispatch) => {
return dispatch;
}
تمامًا مثل mapStateToProps
، من المفترض أن يقوم mapDispatchToProps
بإرجاع كائن به أدوات .
إذا قمت بتوفير دالة ، فإن connect()
سيستدعي
في حالتك ، كنت تقصد إرجاع {dispatch}
(كائن) بدلاً من dispatch
(دالة):
const mapDispatchToProps = (dispatch) => {
// return dispatch;
return {dispatch};
}
سيؤدي ذلك إلى حل المشكلة. بالمناسبة ، هذا _ هو السلوك الافتراضي إذا لم تحدد mapDispatchToProps
، لذلك يمكنك حذفه تمامًا وعدم تمريره إلى connect()
على الإطلاق.
آمل أن يساعد هذا!
شكرًا جزيلاً على مساعدتك في هذا والشرح الشامل الذي قدمته!
التعليق الأكثر فائدة
القضية هنا :
تمامًا مثل
mapStateToProps
، من المفترض أن يقومmapDispatchToProps
بإرجاع كائن به أدوات .إذا قمت بتوفير دالة ، فإن
connect()
سيستدعيفي حالتك ، كنت تقصد إرجاع
{dispatch}
(كائن) بدلاً منdispatch
(دالة):سيؤدي ذلك إلى حل المشكلة. بالمناسبة ، هذا _ هو السلوك الافتراضي إذا لم تحدد
mapDispatchToProps
، لذلك يمكنك حذفه تمامًا وعدم تمريره إلىconnect()
على الإطلاق.آمل أن يساعد هذا!