解决react报错:index.js:1 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application.


报错信息如下:

 

 首先,这个报错的意思是说:在路由快速切换时,数据还没有拿回来,页面就已经销毁了,而当数据拿回来了去执行this.setState()时,找不到组件而报错。

清楚问题后,解决的办法有两个:

第一种:在生命周期UNSAFE_componentWillMount里面取消所有该页面尚未完成的请求:

var xhr = new XMLHttpRequest();

xhr.abort();

第二种:使用react组件this里面的updater属性上的isMounted方法判断组件是否存在,如果不存在,就return,不再去设置setState。

if (this.updater.isMounted(this)) {
     this.setState({
         dashBoardDate: otherDashBoardDate
    })   
} else {
    return
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM