如果我尝试对 componentDidMount
内的 React 组件内的元素执行 document.querySelector
,它似乎并不能保证它(componentDidMount
code>) 在 DOM 上之后被调用。结果是找不到元素
如果我想访问 DOM,是否应该使用一个事件?附加到 DOM 后?
作为解决方法,我使用了 setTimeout
有更好的方法吗?
最佳答案
另一种方法是在您的 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
}
关于javascript - React 组件挂载到 DOM 后触发任何事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46907694/