隐藏生产中的州结构

时间:2017-10-27 06:39:36

标签: reactjs redux react-redux

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

1 个答案:

答案 0 :(得分:2)

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

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

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

修改

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

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

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