使用定時器和echart切換路由頁面時報錯 -主要針對定時器設定後的頁面切換呼叫
阿新 • • 發佈:2020-08-11
報錯資訊:
Uncaught (in promise) TypeError: Cannot read property 'getAttribute' of null
at Object.getAttribute
原因:開啟定時器後,切換頁面定時器沒有銷燬,繼續按照時間來呼叫定時器內的方法獲取不到echart的初始化
解決:在鉤子函式銷燬階段清除定時器-beforeDestroy
beforeDestroy(){//轉換時候清空定時器 console.log('儀表盤轉元件:開始清除定時器') window.clearInterval(this.timer); }
每次切換路由頁面時beforedestroy都會呼叫,換句話說每次切換當前頁面都會被銷燬
也就是說:
beforeDestroy() { console.log('beforedestroy')//切換元件檔案時候不會被呼叫 - 切換路由配置頁面時候每次都會呼叫 }, destroyed() { console.log('destroyed')//切換元件檔案時候不會被呼叫 - 切換路由配置頁面時候每次都會呼叫 }
通常可以在這裡做類似清除定時器等操作