javascript - 在浏览器中调试reducer时,为什么看不到变量的值?

标签 javascript redux google-chrome-devtools source-maps firefox-developer-tools

在使用 Chrome 或 Firefox 开发人员工具时,我无法查看某些 reducer 变量的值。例如,newItem在下面的 Chrome 调试器屏幕截图中:

Chrome :
Chrome screenshot

火狐:
Firefox screenshot

代码运行良好。日志语句输出正确,但通过调试器检查仅显示 undefined .但是,如果我查看 Scope View ,我可以看到一个名为 _newItem 的变量。它具有所有正确的属性和值(因为它们可能很敏感而被隐藏)。

导致此问题的原因似乎是当我对状态进行浅层克隆时:let newState = {...state}; (使用扩展语法或 Object.assign({}, state)

基于 newState 的每个后续变量显示 undefined但有对应的_variableName[0-9]*在开发工具范围 View 上。

这不会发生在我们的 React 组件或其他非 Reducer 代码中。

似乎 Redux、源映射和开发人员工具可能存在问题,但我在 Redux 文档或问题跟踪器以及 Chrome 错误跟踪器中都找不到任何内容。

还原:4.0.5操作系统:Windows 10 x64

测试:
Chrome :81.0.4044.122 , 金丝雀: 84.0.4125.0火狐:75.0 ,开发。版本:76.0b4 (64-bit)
注意:这与 this issue 不同。只处理 Chrome 对闭包变量的优化。

最佳答案

要查看 reducer 的值,我通常使用 Redux DevTools Extension这样的插件看起来很棒,并允许我调试每个状态更改。

如果您想在此处查看文档,我将其留给您:
Redux DevTools Extension

关于javascript - 在浏览器中调试reducer时,为什么看不到变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61233878/

相关文章:

javascript - 检测输入 (type=text) 元素中的文本是否超出 FireFox 中的边界

javascript - React - 使用 Object.keys.map 迭代时检查字符串中的空格

javascript - jQuery - 简单的屏幕保护程序

asynchronous - 使用 redux-saga 链接异步操作

javascript - 列表项中的 ReactJS onClick

javascript - 如何跟踪 HTML 元素的添加?

javascript - 如何从 Javascript 中的较大字符串中获取字符串?

javascript - 在 redux 中,reducer 改变状态后会发生什么?

google-chrome-devtools - 如果脚本标签的内容太长,可以将其截断吗?

javascript - 如何在 Chrome 分析/性能选项卡中阅读评估脚本时间