vue项目 echarts中出现“There is a chart instance already initialized on the dom.”的警告

在vue项目开发中遇到echarts警告:'There is a chart instance already initialized on the dom.'。该警告意味着DOM上已有图表实例。为了避免这个问题,可以在echarts.js外部全局定义myChart,然后在图表函数中检查myChart是否已存在,如果存在则销毁并重新初始化。通过这种方法,可以确保每次只初始化一个图表实例,消除重复加载导致的警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目开发中创建echart图表时遇到“There is a chart instance already initialized on the dom.”的警告,意思即为dom上已经初始化了一个图表实例,并且如果你图表中定义了点击方法,多次覆盖之后,点击方法会触发多次。更新页面重复加载这个图表实例时就会出现这类警告。

以下写法可以避免这类警告。

1、例如你的echart图表代码写在一个单独的echarts.js文件中,建议在export defalut之外 定义 var myChart;

在方法最外层定义全局变量

 2、然后在插件使用方法中:即在echarts图表函数中写 :

 if (myChart != null && myChart != "" && myChart != undefined) {

        myChart.dispose(); //销毁

      }

// 基于已经创建好的dom,初始化echarts实例

      myChart = echarts.init(document.getElementById("def1"));

      var option;

3、总结

echarts图表方法的最开始写上判断,然后初始化echarts实例;

最重要的就是全局定义和方法开头的判断。然后再myChart.dispose(); //销毁重复加载的图表实例。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值