Javascript 在react中访问全局变量

Javascript 在react中访问全局变量,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,学习反应在这里 我试图访问一个全局变量,该变量由我正在使用的浏览器扩展公开。我要做的第一件事是在componentDidMount方法中检查变量是否可用 每次我试图通过简单地在componentDidMount中添加if条件来实现这一点时,它都失败了。但是如果我把if语句包起来 document.onreadystatechange = () => { if (document.readyState === 'complete') { 它很好用。我认为组件didmount

学习反应在这里

我试图访问一个全局变量,该变量由我正在使用的浏览器扩展公开。我要做的第一件事是在
componentDidMount
方法中检查变量是否可用

每次我试图通过简单地在
componentDidMount
中添加if条件来实现这一点时,它都失败了。但是如果我把if语句包起来

document.onreadystatechange = () => {
       if (document.readyState === 'complete') { 
它很好用。我认为
组件didmount
会完成这个技巧,而不是在上面的代码中包装我的条件检查

我是不是遗漏了什么?是否有更好的方法来检查应用程序是否已完全渲染,以及是否可以访问浏览器提供的全局变量

谢谢

组件更新


可能适用于您。

componentDidMount在您的组件安装后调用,如果您不确定全局变量何时将公开,则应添加一个条件以检查它是否公开。如果您的Receive道具在呈现该组件后,可能是您可以使用
componentdiddupdate
访问变量如果安装了react组件,文档肯定已准备就绪。“应用程序已呈现”取决于您对什么的定义,即,React应用程序始终重新呈现,
componentDidMount
应该是一个足够的检查。获取readyState大约需要3秒钟,这就是为什么会发生这种情况。