يبدو أن المشكلة تكمن في كيفية تعريف الحالة الابتدائية في متجر Redux الخاص بك. في الشيفرة التي قدمتها، كنت تعرف الحالة الابتدائية على أنها كائن يحتوي على مفتاح واحد فقط وهو characters
وتعيد قيمة فارغة لهذا المفتاح. ومع ذلك، في مفتاح marvelReducer
، توقعت مكتبة Redux أن تكون هذه الحالة تحتوي على المفتاح characters
مع قيمتها الفعلية.
لحل هذه المشكلة، يمكنك تعديل الحالة الابتدائية في متجر Redux الخاص بك لتتوافق مع التوقعات. يمكنك تعريف الحالة الابتدائية كما يلي:
javascriptconst initialState = {
marvelReducer: {
characters: []
}
};
بعد هذا التعديل، يجب أن تعمل التطبيق بشكل صحيح دون رمي أي أخطاء حول المفاتيح غير المتوقعة في حالة البداية.
المزيد من المعلومات
الخطأ الذي تواجهه يحدث عند محاولة إنشاء متجر Redux باستخدام حالة ابتدائية تحتوي على مفتاح غير معروف. في حالتك، توقعت مكتبة Redux أن تكون الحالة الابتدائية تحتوي على مفتاح يسمى marvelReducer
ولكن وجدت characters
بدلاً من ذلك.
السبب في ذلك هو كيفية تعريف المتجر والحالة الابتدائية في ملف store.js. في هذا الملف، قمت بتعريف الحالة الابتدائية بهذه الطريقة:
javascriptconst initialState = {
characters: []
};
ومن ثم قمت بإنشاء المتجر باستخدام combineReducers لجمع reducers في rootReducer:
javascriptconst rootReducer = combineReducers({
marvelReducer,
routing: routerReducer
});
لحل هذه المشكلة، يجب تعديل تعريف الحالة الابتدائية في store.js لتطابق توقعات combineReducers. يمكنك تعديل الحالة الابتدائية كما يلي:
javascriptconst initialState = {
marvelReducer: {
characters: []
},
routing: {}
};
بعد هذا التعديل، يجب أن يتمكن المتجر من الإنشاء بدون رمي الخطأ حول المفاتيح غير المتوقعة في الحالة الابتدائية.