echarts報錯Cannot?read?properties?of?null?(reading?‘getAttribute‘)的解決
前言
最近在寫 echarts 的時候碰到了這么一個報錯,如下圖。造成報錯的原因是因為 echarts 的圖形容器還未生成就對其進(jìn)行了初始化,下面幾種方法是經(jīng)本人自測最有效的解決方案。
報錯截圖

解決方案:
1. this.$nextTick
該方法思路是將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。
this.$nextTick(() => {
this.chartPort();
});
2. created(){}
將 created(){} 生命周期中的方法放在 mounted(){} 生命周期中,該方法思路是因為數(shù)據(jù)渲染方法放到了 created(){} 生命周期中,但是數(shù)據(jù)還未取到,頁面已經(jīng)加載了,故放在 mounted(){} 生命周期中,在初始化頁面完成后,再對 DOM 節(jié)點進(jìn)行相關(guān)操作。
mounted() {
this.chartPort();
},
3. document.readyState
document.readyState 方法主要是描述了文檔的加載狀態(tài),以下是它的三種類型值:
| 值 | 描述 |
|---|---|
| loading | 加載中 |
| interactive | 文檔已經(jīng)完成加載且已被解析,但是類似圖像,樣式表和框架之類的子資源仍在加載。 |
| complete | 加載完成 |
當(dāng)這個屬性的值變化時,document 對象上的 readystatechange 事件就會觸發(fā)。因此我們可以借助此特性讓圖表方法在頁面渲染完成后在觸發(fā)。
mounted() {
var that = this;//防止this指向問題
var timer = setInterval(function () {
// 判斷頁面所有資源已加載完畢
if (document.readyState === "complete") {
that.chartPort();//執(zhí)行方法
window.clearInterval(timer);
}
}, 800);
},
總結(jié)
到此這篇關(guān)于echarts報錯Cannot read properties of null (reading ‘getAttribute‘)解決的文章就介紹到這了,更多相關(guān)echarts報錯Cannot read properties of null內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript實現(xiàn)在網(wǎng)頁中運行本地程序的方法
這篇文章主要介紹了javascript實現(xiàn)在網(wǎng)頁中運行本地程序的方法,實例分析了JavaScript基于ActiveXObject運行本地程序的技巧,需要的朋友可以參考下2016-02-02
這篇文章主要介紹了JS實現(xiàn)左邊列表移到到右邊列表功能,實現(xiàn)功能主要是左邊的下拉框內(nèi)容添加到右邊的下拉框,支持多選移動,且同時將右邊的下拉框?qū)ο笠瞥?,需要的朋友可以參考?/div> 2018-03-03
JavaScript 用cloneNode方法克隆節(jié)點的代碼
很多時候我們需要通過HTML DOM 的方式,用JavaScript 動態(tài)生成很多相同的節(jié)點,包括其子節(jié)點2012-10-10
uni-app實現(xiàn)web-view圖片長按下載解決方案
uniapp的web-view中圖片無法長按保存,IOS下是正常的,但是Android下長按無反應(yīng),這篇文章主要介紹了uni-app實現(xiàn)web-view圖片長按下載解決方案,需要的朋友可以參考下2023-09-09最新評論

