我正在使用react-redux提供商。在生产中,如果我使用$r.store.getState()
安装了react chrome扩展,我可以看到状态结构。如何在生产中隐藏此行为?
答案 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
值将始终等于{}
,控制台将保持沉默。