出错原因
- 其实归根到底就是数据渲染没渲上去echarts已经初始化了,但由于没数据,就报这个错。
- 还有一种是数据遗留,比如有多个用户数据的echarts图,在切换数据的时候没有及时清空前一个人的数据,就会出这个错。
- 注意:如果这两个都不是,检查一下数据是不是都在(有后端的看看接口返回的是不是空),如果是空那你就要做个判断了。因为一定是某个数据没有,才会出这个错。(排查思路已经放这了,什么问题自己去debug)
解决方案(针对上面两种错)
- 第一种方法,用clear() -> 这是echarts里自带的api,意在清空画布。
echartsBox.clear();
echartsBox.setOption(option)
- 第二种方法,在初始的方法(setOption)外面套个setTimeout,延时加载数据。可以放在mounted里,也可以放在别的地方,具体看需求了。(ps:可以试试一二种方法的组合拳…先清空数据然后请求加载)
setTimeout(() => {
this.setOption();
this.echartsBox.setOption(this.option);
}, 500)