echarts多次setOption没有覆盖(清除)上一条数据

问题现象:

echarts多次setOption没有覆盖原数据。初始图表没有数据,显示一个空坐标轴;第二次setOption新数据时,图表正常绘制新图;第三次setOption时,y轴数据为空,但却绘制出第二次部分数据的图表。
现象依次如下面三图:
echarts多次setOption没有覆盖(清除)上一条数据_第1张图片
echarts多次setOption没有覆盖(清除)上一条数据_第2张图片
echarts多次setOption没有覆盖(清除)上一条数据_第3张图片

解决方法:

echartsInstance. clear

官方文档

echartsInstance. clear
any
清空当前实例,会移除实例中所有的组件和图表。

在setOption前,先清空图表chart.clear() ,便可以解决此问题。
demo:

        let chart = echarts.init(document.getElementById('main'));
        chart.clear(); // 清空图表
        let option = {
        	series: [],  // 第二次通过此方式初始化,并不能在setoption时清除到series
        	...// 若干配置
        } 
        chart.setOption(option);

找问题过程思路:
  • 先从现象看,只有在y轴数据为空的时候数据会错乱,应该就是引用对象没有清除掉的问题;
  • 打印出option,发现里面的series的确是[],那的确是没有问题的,开始一直以为是option这个变量有问题,但怎么清空option都没有用;
  • 后来,在chart.setOption后,将chart.getOption() 打印出来,发现的确series: []时的option,echarts插件内部并没有将chart中的series[]覆盖掉。所以,要规避这个问题,就需要先清除组件实例。

你可能感兴趣的:(echarts)