1. 需求描述
使用Echats实现了一个中国地图:
- 通过选择查询周期,点击查询按钮查询全国数据。
- 点击地图中省份在表格以及其他图表中展示具体省份的数据信息。
- 点击没有数据的省份,会提示该省份无数据。
2. 问题描述
这时出现了两个问题:
每点击一次查询之后,再点击中国地图中的省份:
- axis发的请求就会多一次。
- 提示省份无数据的提示框也会叠加一个,如图:
正常状态:


问题状态:
点击了几次查询按钮以后,再点击中国地图中的省份,好几个提升框叠加到了一起,并且会重复发axis请求。


3. 解决方法
考虑到应该是Echarts没有正确销毁导致的,修改代码后,问题解决。
// 原代码:
let chart = echarts.getInstanceByDom(this.$refs.map) || echarts.init(this.$refs.map);
disposeChart() {
this.chart && this.chart.dispose();
}
// 修改后:
let chart = this.chart = echarts.getInstanceByDom(this.$refs.map) || echarts.init(this.$refs.map);
disposeChart() {
this.chart && this.chart.dispose();
}
“Great things are done by a series of small things brought together.”
--Vincent Van Gogh
本文档记录了一个使用Echarts实现中国地图应用时遇到的问题:每次查询后点击省份,请求会重复且提示框叠加。问题在于Echarts实例未正确销毁。解决方案是确保在每次查询后清理旧的Echarts实例,防止资源泄漏和异常行为。修复代码涉及对Echarts实例的初始化和销毁过程。
2276

被折叠的 条评论
为什么被折叠?



