echarts中提示“There is a chart instance already initialized on the dom.”的解決辦法以及getInstanceByDom的使用

當我們想相對echart的圖標配置進行封裝,就會實現相同圖標的多樣性。
上一段實例代碼

cubeBarChartsXAxisRotateTimeLine: function (data,  id, index) { 
      let linearBarDom = echarts.init(document.getElementById(id)); // 直接進行初始化
      let {dataX, dataArray, axisName} = data;
      let itemData = dataArray[index]
      let options = {
		
	  };
      linearBarDom.setOption(options, true);
  }

如上文代碼已經將代碼封裝,但是每次傳值,例如id一直相同,但是傳的index一直在變化。
這時echarts的就會提示一個“There is a chart instance already initialized on the dom.”的提示。

解決辦法

cubeBarChartsXAxisRotateTimeLine: function (data,  id, index) { 
    let linearBarDom = echarts.getInstanceByDom(document.getElementById(id)); //有的話就獲取已有echarts實例的DOM節點。
     if (linearBarDom == null) { // 如果不存在,就進行初始化。
         linearBarDom = echarts.init(document.getElementById(id));
     }
    let {dataX, dataArray, axisName} = data;
    let itemData = dataArray[index]
    let options = {

 };
    linearBarDom.setOption(options, true);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章