reactjs - 隐藏生产中的状态结构

标签 reactjs redux react-redux

我正在使用react-redux 中的Provider。在生产中,如果我使用 $r.store.getState() 安装了 React chrome 扩展,我可以看到状态结构。如何在生产中隐藏这种行为?

最佳答案

您可以使用 Object.defineProperty 函数使全局 $r 变量不可可写:

Object.defineProperty(window, '$r', {
  writable: false
});

在这种情况下,React Devtools 无法为 $r 变量赋值,因此没有人可以使用 React Devtools 访问存储实例。

编辑:

当设置 writable: false 属性时,React Devtools 会抛出一个错误,即 $r 属性不可写。为了避免该错误,您可以通过这种方式为该变量设置常量值:

Object.defineProperty(window, '$r', {
  value: {}
});

在这种情况下,$r 值将始终等于 {} 并且控制台将保持静默。

关于reactjs - 隐藏生产中的状态结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46968925/

相关文章:

javascript - 在 React 中使用 Link Component 时如何摆脱样式

reactjs - 如何更新 redux 工具包查询中获取的数据?

javascript - 在 redux 中添加多个对象到 store

javascript - 垂直添加元素时如何防止背景图像在移动浏览器上缩放?

reactjs - 使用useEffect时如何等待渲染完成以获取useContext?

reactjs - react native : Under what circumstances do you have to manually add dependencies of your dependencies?

javascript - 如何修复 "Expected to return a value at the end of arrow function"警告?

ReactJs - 从 URL 查询参数初始化 Redux Store

reactjs - 将 socket.io 与 redux 结合使用

javascript - 从 React 组件中的 Select 发送数字而不是字符串