近期做echarts地图控件时踩到了一个坑
先说下需求:
点击全部时展示所有仓数据总量
点击单个仓时展示单个仓的数据
但是发现在点击单个仓时 数据并没有被清除 还是保留全部的数据
如下图(点击了西安仓)
西安仓中数据为空 正常应该是什么都不显示的
查看官方文档后发现原来set的时候是:
this.charts.setOption(option);
正确的应该是:
this.charts.setOption(option,true);
再次刷新,问题解决,
setOption有3个属性
setOption(option,notMerge,lazyUpdate);
第二个notMerge默认为false,即默认合并两个数据
置为true之后则不合并数据了,就可以实现刷新数据的效果了
// mapChina为地图的初始化对象
// mapChina.setOption(mapBoxOption); // 默认合并数据 展现最多的数据
mapChina.setOption(mapBoxOption,true);
这样在选择单个仓时 如果没有数据就不会显示之前的数据了
要是还是无法解决的话 可以在setOption之前先清除下画布(一定要在setOption之前清)
// 清空画布
mapChina.clear()
// mapChina.setOption(mapBoxOption); // 默认合并数据 展现最多的数据
mapChina.setOption(mapBoxOption,true);