当修改setOption值的时候,如果 option.series 是动态增加减少,图表渲染会出错。
比如,echarts 图表一开始只有单一的柱状图,后来通过 option.series 动态插入数据,新增折线图。这时候 echarts 图表是柱状图+折线图,显示没问题,后面将 option.series 的数据减少一个,按理说应该只存在柱状图,情况是柱状图的数据更新,但是折线图还在。
可以通过setOption的第二参数(notMerge)解决这个问题。
myChart.setOption(option,true)
这个字段的含义是全部组件更新,如果不想所有组件都更新,那么可以设置更新字段
myChart.setOption(option, {replaceMerge: ['xAxis', 'series']
});
另外,setOption中3个参数的含义
- option—— 图表的配置项和数据
- notMerge—— 可选,是否不跟之前设置的 option 进行合并,默认为 false,即合并。
- lazyUpdate—— 可选,在设置完 option 后是否不立即更新图表,默认为 false,即立即更新。
echart配置文档