首先,uniapp当中使用echarts是在通过使用renderjs的script模板的前提下实现的,在官方提供的案例当中,核心代码是这一部分:
但如果将其封装为组件,并在一个页面当中引用多次来生成多个charts图标,那么这个时候就会出现上下之间charts图错乱的问题
问题解决:
initEcharts() {myChart = echarts.init(this.$el)myChart.setOption(this.option)
},
updateEcharts(newValue, oldValue, ownerInstance, instance) {myChart = echarts.init(ownerInstance.$el)myChart.setOption(newValue)
}
经过分析和反复测验,发现只需要在这两个钩子当中重新init charts,并且init需要通过this.$el来获取而并不能通过document.getElementById来获取,这样,在组件渲染多个charts的时候,就可以通过获取到当前的实例来精准的渲染出来