我很难让减速器变热。
我正在使用Webpack和react-transform-hmr
。有了这个,当我保存时,所有的CSS和组件都是热加载的,但是当我尝试使用其他类型的类型时 - 最明显的是减速器 - 它会告诉我进行全面刷新。
我发现这是因为我需要明确地重新加载reducers并接受事件。我在store.js
:
if(module.hot) {
module.hot.accept('./reducers/', () => {
const nextRootReducer = require('./reducers/index');
store.replaceReducer(nextRootReducer);
});
}
reducers/index
导出根减速器。
但是现在当我运行它时,它仍会告诉我[HMR] Cannot check for update (Full reload needed
以及错误[HMR] TypeError: currentReducer is not a function
所以 - 我需要一些帮助才能让它发挥作用。代码可在https://github.com/wesbos/Simple-Redux获得,您可以通过执行以下操作重现该代码:
npm install
npm start
posts.js
并将第6行的数字更改为其他任何内容答案 0 :(得分:18)
我没有密切关注,但我最好的猜测是this issue
Babel 6不再尝试使ES6默认导出module.exports
的结果。
所以而不是
const nextRootReducer = require('./reducers/index');
你可能想要
const nextRootReducer = require('./reducers/index').default;
与Bab6 6输出匹配,用于ES6默认导出。