场景:使用echart 初始化时报错:TypeError: Cannot read property ‘getAttribute‘ of null
问题:echarts.init(document.getElementById(“xxxx”))
其中的document.getElementById(“xxxx”) 为null ,也即无法获取到,dom元素。
<div class="chart" id="barChart"></div>
其中 getData 是从后台获取的数据, 需要dom节点挂载页面后,才能获取到echartNode 这个节点,做了v-if判断。所以修改为 v-show,发现还是无法获取。
最终排查发现可能是vue的渲染机制问题。添加setTimeout(()=>{},1000); 添加延时解决。
setTimeout(() => { var chartDom = document.getElementById('barChart'); }, 1000)