在DOM中安装React组件后触发的任何事件?

时间:2017-10-24 10:06:32

标签: javascript reactjs

如果我尝试对document.querySelector内的React组件内的元素执行componentDidMount,似乎不保证它(componentDidMount)在DOM上调用之后被调用。结果是它找不到元素

如果我想访问DOM,是否应该使用一个事件?它附加到DOM之后?

作为一种解决方法,我使用setTimeout有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

另一种方法是在componentDidMount方法中设置一些状态更改。它会对您的组件进行更新,并以绝对挂载状态再次调用渲染方法。

像这样:

componentDidMount(){
  this.setState({
    isMounted: true
  })
}

componentWillUpdate(nextProps, nextState){
  if(nextState.isMounted){
     // do something for your query selecting
  }
}

componentWillUnmount(){
  // do something else if you want
}
相关问题