echarts图表与其他内容切换后无法重新刷新问题

本文深入探讨了ECharts图表在特定条件下无法刷新的原因,尤其是在修改了div容器内部结构后的问题。解析了ECharts的渲染逻辑,并提供了解决方案,通过清除div的_echarts_instance_属性值,使图表能够重新渲染。

在特殊情况下,我们可能是用echarts实例并且setOption()但无法刷新表格内容,例如:我们修改了div容器的内部标签等等...

原因可能是我们破坏了第一次渲染的div容器的结构,

echarts的渲染逻辑是这样的:
 如果未实例化则进行实例化过程,在此期间会在div容器生成一个 _echarts_instance_ 属性, 该属性值其实就是当前echarts的ID,然后进行后边的渲染操作...

当我们刷新已经实例化的echarts图表时,echarts会先匹配改div容器上的_echarts_instance_属性值是否与实例对象的ID一样,如果一样则会在原有的结构上进行渲染,但是因为我破坏了原有的结构,所以无法重新渲染出表格内容,所以我们可以执行如下代码:

document.getElementById('div的ID').setAttribute('_echarts_instance_', '')

这样div的_echarts_instance_值就不会被匹配到,这样echarts就会像渲染新的图标一样渲染出来

 

注:这样的操作会重新渲染echarts的div容器结构,也就是重新操作了dom,会影响性能

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值