在使用 Chrome 或 Firefox 开发人员工具时,我无法查看某些 reducer 变量的值。例如,newItem
在下面的 Chrome 调试器屏幕截图中:
Chrome :
火狐:
代码运行良好。日志语句输出正确,但通过调试器检查仅显示 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/