[ECharts] Instance ec_xxx has been disposed

发布时间:2024-04-19浏览次数:93 次
项目中,在正常切换标签页等常规操作时,是没有问题的,但是做了一个刷新页面并切换数据的效果之后,发现Echarts的柱形图就开始报错:[ECharts] Inst

项目中,在正常切换标签页等常规操作时,是没有问题的,但是做了一个刷新页面并切换数据的效果之后,发现Echarts的柱形图就开始报错:[ECharts] Instance ec_1713489937436 has been disposed 了。检查代码感觉都是正确的,每次离开页面之前,都会执行myChart.dispose()操作,然后进入页面时myChart = echarts.init(),一切看起来貌似没什么问题。

通过打印 myChart 终于发现,每一次报错的 Echarts的id值都是相同的,而且随着页面刷新,报错的 Echarts的id值也会逐渐增多。但其实我们每次切换标签页之后,ECharts实例化来的myChart的id都是不相同的。这也就给了我们一个思路,在 初始化 init之前,再检测一次myChart是否已存在,如果存在的话,执行一次dispose()操作之后,再重新实例化,代码如下:

if (myChart) myChart.dispose()
myChart = echarts.init(node)

另外,还在在离开页面时,将myChart设置为null

if (myChart) myChart.dispose()
myChart = null

至此,问题一般都能顺利解决,控制台也清爽很多。

扫一扫,在手机上查看