استنساخ ، git clone.
أمثلة على القرص المضغوط / مع إعادة
غزل
بداية الغزل
ثم قم بتغيير أي ملف ، على سبيل المثال ، common / components / Counter.js ، سيعمل HMR ، لكن المتصفح سيصدر التحذير التالي
<Provider> does not support changing store on the fly. It is most likely that you see this error
because you updated to Redux 2.x and React Redux 2.x which no longer hot reload reducers
automatically. See https://github.com/reactjs/react-redux/releases/tag/v2.0.0 for the migration instructions.
لقد حاولت البحث في google حول هذا الخطأ ، لكن لم أجد أي حل غذائي له. أي شخص تمكن من التغلب على هذا؟
أضفت الكود التالي إلى ملف client.js وأزال التحذير.
if (module.hot) {
module.hot.accept();
module.hot.accept('./App', () => {
hydrate(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>,
document.getElementById('app')
);
});
}
أي شخص لديه أي رأي في هذا؟
هل يمكنك تقديم العلاقات العامة؟
أضف key={Math.random()}
prop إلى <Provider>
. يجب أن يصلح هذا التحذير.
حل howardya هو الأفضل هنا. يؤدي استخدام مفتاح عشوائي إلى إسكات التحذير ولكنه لا يغير حقيقة إعادة إنشاء المتجر في كل تحديث ، وهو ما لا يتم دعمه. يمكن أن يؤدي إلى بعض السلوكيات المتزعزعة ، خاصة إذا كنت تستخدم أدوات تطوير إعادة التشغيل أو ما شابه ذلك.
من خلال معالجة الوحدة النمطية ./App
وجه التحديد ، ستلتقط جميع التحديثات تقريبًا باستثناء المخفضات ، والتي يتم التعامل معها بشكل منفصل بالفعل. هذا يترك التغييرات على configureStore.js
و client/index.js
نفسها على أنها غير معالجة. يمكنك إما ترك ملف استقبال الرسائل الخاطئة ، مما يؤدي إلى إعادة تشغيل كل شيء ولا يزال يتسبب في ظهور التحذير ، أو إزالته ، مما يؤدي إلى إعادة تحميل الصفحة. أعتقد أن هذا الأخير سيكون أكثر صحة هنا.
سألقي نظرة على عمل العلاقات العامة لهذا الغرض.
أضف
key={Math.random()}
prop إلى<Provider>
. يجب أن يصلح هذا التحذير.
حل مشكلتي! شكرا يا رجل.
التعليق الأكثر فائدة
أضف
key={Math.random()}
prop إلى<Provider>
. يجب أن يصلح هذا التحذير.