如果我尝试对document.querySelector
内的React组件内的元素执行componentDidMount
,似乎不保证它(componentDidMount
)在DOM上调用之后被调用。结果是它找不到元素
如果我想访问DOM,是否应该使用一个事件?它附加到DOM之后?
作为一种解决方法,我使用setTimeout
有更好的方法吗?
答案 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
}