javascript - React 组件挂载到 DOM 后触发任何事件吗?

标签 javascript reactjs

如果我尝试对 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/

相关文章:

javascript - Reactjs 数据结构中的表

javascript - 如何停止鼠标移动?

javascript - Typescript/Angular 中的 IF 语句

javascript - 将数据插入数据库而不重新加载页面(PHP + Jquery)

javascript - 精确匹配单词并删除正则表达式中的前导空格

node.js - 使用 express 在 Nextjs 中刷新页面丢失查询字符串

reactjs - facebook 喜欢 React JS 中的通知和 redux 依赖通知图标?

javascript - React JS - IMG onclick 事件后无法更新文本

node.js - 用后端请求响应服务器端渲染

javascript - AngularJS 表达式中的评估函数