问题:
echarts第一次能渲染,但点击其他页面在点击回来就不渲染了。查看dom属性发现了一个特殊的属性:_echarts_instance_,对应的值是一个id,可能是由于再次渲染时这个id未发生改变导致ehcarts认为不需要重新渲染。
分析:
echarts的渲染逻辑:如果未实例化则进行实例化过程,在此期间会在div容器生成一个_echarts_instance_属性,该属性就是当前echarts的ID,然后进行后边的渲染操作,当我们刷新已经实例化的echarts图表时,echarts会先匹配该div容器上的_echarts_instance_属性值是否与实例对象一样,如果一样则会在原生的结构上进行渲染,但是如果破坏原生了的结构,就无法重新渲染出表格内容。
解决方法:
let vcharts = document.getElementById("vcharts");
//解决echarts 二次渲染时不显示的问题
vcharts.removeAttribute('_echarts_instance_');
const myChart = echarts.init(vcharts);