react学习(十)______组件的生命周期(卸载阶段)

在react中,组件的生命周期有一个阶段是卸载阶段。

componentWillUnmount ()

在这个钩子函数中,可以卸载或者销毁组件的数据以及结构
我们可以在这个组件中做以下的事情:

  • clear你在组建中所有的setTimeout,setInterval
  • 移除所有组建中的监听 removeEventListener
  • componentWillUnmount() 中不应调用 setState(),因为该组件将永远不会重新渲染。组件实例卸载后,将永远不会再挂载它。
  • 使用这个钩子函数需要留意还有没有什么异步操作没做完的,如果在卸载的过程中,还有一些异步操作没做完就执行这个钩子函数的话就会报以下的错:
Can only update a mounted or mounting component. This usually      
means you called setState() on an unmounted component. This is a   no-op. Please check the code for the undefined component.

其实不用管这事什么错误,就是异步操作为执行就组件已经销毁了,例如:axios请求的时候,页面还没有返回数据,组件就已经销毁,这时候就会报这个错误。

componentDidMount() {
    this.flag=== true
    axios.post().then((res) => {
    if(flag){
       this.setState({   
        aaa:res
      })
    }
  })
}
componentWillUnmount() {
    this.flag === false
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。