【发布时间】:2016-08-20 09:10:41
【问题描述】:
我将 Redux 与 React Native 和 HMR 一起使用。当我更改减速器时,接受会冒泡到我的 configureStore.js 文件,该文件调用它:
if (module.hot) {
module.hot.accept(() => {
const nextRootReducer = require('../reducers/index').default;
store.replaceReducer(nextRootReducer);
});
}
然后 HMR 继续循环搜索引用,直到堆栈溢出。
会不会是某个地方有循环引用?如果是这样,任何追踪它的提示?我尝试单步执行require.js 代码,但“引用”保留为数字,因此很难找到正确的文件。
【问题讨论】:
-
我也有类似的问题。对我来说,最初的
store对象变得未定义,当您直接使用store时,这 - 虽然不是惯用的 - 是一个问题。起初,这是唯一的问题,但随着时间的推移,当我更新减速器时,它会一起崩溃(红屏死机)。我假设这来自添加诸如redux-storage或其他一些中间件之类的包。更新动作更是一个问题——那些从来没有很好地工作过。我的假设是我需要在传递给module.hot.accept的函数中做更多事情。 IE。重做我最初在configureStore中所做的一切。 -
更新:你的问题让我再次思考这个问题,我终于解决了,哈哈。不确定它是否适用于你,但我做了两件事:我做了我假设的事情,我没有用 redux 存储正确地重新配置存储,所以我这样做了。 IE。我确保所有之前设置减速器的步骤都在
module.hot.accept中再次完成。然后就操作而言,我停止将它们导入我的configureStore文件,因为我没有使用它们——这解决了更改我的操作文件破坏了存储的问题,它无法正确“接受”变化。
标签: javascript react-native redux hot-module-replacement