问题

Vue3 使用echarts时,出现如下错误

Uncaught (in promise) Error: Initialize failed: invalid dom.

原因

echarts初始化是要获取dom

上述原因是说没有获取到dom

可能是将初始化放在了dom还没有挂载的生命周期里,所以获取不到

解决

解决办法是把初始化放在onMounted阶段来执行
例子如下:

<script setup>
import { onMounted } from '@vue/runtime-core';
import * as echarts from 'echarts';

onMounted(() => {
    createMap();
})
const createMap = () => {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));
    // 绘制图表
    myChart.setOption({
        title: {
            text: 'ECharts 入门示例'
        },
        tooltip: {},
        xAxis: {
            data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
            {
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }
        ]
    });
}

</script>
Logo

前往低代码交流专区

更多推荐