當我們想相對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);
}