为啥使用 redux devtools 在我的 _reduxDevtools 对象中未定义 ActionCreators 属性?

Posted

技术标签:

【中文标题】为啥使用 redux devtools 在我的 _reduxDevtools 对象中未定义 ActionCreators 属性?【英文标题】:Why is the ActionCreators property undefined in my _reduxDevtools object using redux devtools?为什么使用 redux devtools 在我的 _reduxDevtools 对象中未定义 ActionCreators 属性? 【发布时间】:2016-04-17 07:22:45 【问题描述】:

按照official repo 上的文档,当我创建 DevTools 组件时,configureStoreDevTools 组件存储并呈现在我的我的 working react 应用程序中的主要组件,我最终在 LogMonitor.js:45 中得到一个:Uncaught TypeError: Cannot read property 'reset' of undefined

第45行对应:var reset = _reduxDevtools.ActionCreators.reset;

_reduxDevtools 看起来像这样:

▼ _reduxDevtools: Object
    __esModule: true
    ► devTools: devTools()
    ► persistState: persistState(sessionId)
    ► __proto__: Object

ActionCreators 属性实际上是缺失的。

为什么我的_reduxDevtools 对象中的ActionCreators 属性未定义?

我是否遗漏了一些明显的东西?当我不使用 redux-devtools 时,我的应用程序运行良好,所以我非常怀疑它来自我的应用程序代码。

我还 rm -rfed 我的 node_modules 并重新安装了所有东西。

更新

我尝试使用the counter example 或redux-devtools 重现该问题,并尝试查看我的项目与此示例有何不同。

如果我在反例中从 webpack.config.js 中删除 this line,我会收到相同的错误消息:

'redux-devtools': path.join(__dirname, '..', '..', 'src')

resolve.alias: 用其他模块或路径替换模块。

【问题讨论】:

在我看来,您所做的一切都是正确的。我建议在 redux-devtools GitHub 页面提出问题。 【参考方案1】:

您在使用 v3.0.0-beta-2 中首次引入的新 API 时,似乎使用的是过时版本的 redux-devtools

您还可以通过查看扩展坞和日志监视器插件的对等依赖项来了解这一点,它们需要 devTools v3。

我猜你遇到了这个错误,因为当你安装时,稳定版本还没有发布,npm 没有选择 beta 版本,让你使用 v2。

我将redux-devtools 版本从您的复制品升级到最后一个,一切正常


此外,示例中 webpack 配置的解析参数仅需要来自存储库根目录的 devTool 源,而无需再次安装。

【讨论】:

以上是关于为啥使用 redux devtools 在我的 _reduxDevtools 对象中未定义 ActionCreators 属性?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Redux-DevTools 中使用 Webpack HMR 插件时 App 状态会重置?

如何将操作发送到 redux-devtools 存储以从组件导入状态?

Redux DevTools Extension 的使用

如何启用 Redux Devtools?

有没有人在使用redux dev工具在TS中遇到这个错误? “'窗口'类型中不存在”属性'__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'。“

Redux-DevTools安装