解決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