【发布时间】:2019-11-08 00:15:50
【问题描述】:
我有一个 react-redux 应用程序在 chrome 中运行良好,但在 Firefox 中显示空白屏幕。
对于网络选项卡中的相同请求,firefox 给出状态码 304,而在 chrome 中为 200。
由于我使用的是 redux 商店,所以我使用下面的代码来创建 redux 商店。
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducer,composeEnhancers(applyMiddleware(thunk)));
如果我使用下面的代码来创建 composeEnhancers,那么它的值将变为“未定义”并且代码在 firefox 中失败。但这在 chrome 中也可以正常工作。
const composeEnhancers = process.env.NODE_ENV === 'development'? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ :null || compose;
Firefox 错误:
下载 React DevTools 以获得更好的开发体验
警告:无法对未安装的组件执行 React 状态更新。 这是一个空操作,但它表明您的应用程序中存在内存泄漏。 要修复,取消所有订阅和异步任务 componentWillUnmount 方法。
【问题讨论】:
-
你可以试试这个
const composeEnhancers = process.env.NODE_ENV === 'development'? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ :compose; -
你在
componentWillUnmount中调用了异步请求吗? -
从第二个错误开始,您似乎已经发送了一个异步请求,并且在它返回之前您的组件已被卸载,或者您已经注册了全局甚至监听器,例如窗口调整大小事件并且它们被触发并且之后组件已卸载
-
@ravibagul91 使用你提到的代码我得到“TypeError:composeEnhancers is not a function”
-
@MohammadRezaKhedri:我没有在 componentWillUnmount 中提出任何请求。我没有在代码的任何地方使用它
标签: reactjs react-redux