vue中使用eCharts时[ECharts] There is a chart instance already initialized on the dom.
时间: 2023-12-01 18:42:13 浏览: 90
当在Vue中使用ECharts***元素上多次渲染图表,就会出现警告[ECharts] There is a chart instance already initialized on the dom. 这是因为ECharts实例只能在一个DOM元素上初始化一次。为了解决这个问题,可以在切换图表时先销毁之前的ECharts实例,然后再重新渲染新的图表。
以下是解决方法:
1.在Vue组件中引入ECharts,并在mounted钩子函数中初始化ECharts实例:
```javascript
import echarts from 'echarts'
export default {
data() {
return {
liquidChart: null, // ECharts实例
chartData: {...} // 图表数据
}
},
mounted() {
this.initChart()
},
methods: {
initChart() {
const chartDom = this.$refs.chart
this.liquidChart = echarts.init(chartDom)
this.liquidChart.setOption({...})
}
}
}
```
2.在切换图表时,先销毁之前的ECharts实例,然后再重新渲染新的图表:
```javascript
watch: {
changeIndex: {
handler() {
if (this.liquidChart) {
this.liquidChart.dispose()
this.liquidChart = null
}
this.initChart()
}
}
}
```
阅读全文