在特殊情况下,我们可能是用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,会影响性能
网友评论