Echarts报错: Error in v-on handler: “Error: Initialize failed: invalid dom.“

在使用Echarts遇到了这个问题。遍寻无果的情况下,我是怎么解决的?

问题描述

最开始使用,图表组件是正常的。可是怎么就出现这个问题了呢?
同一个路由,我想展示不同图表组件构成的页面,所以采用了tab切换按钮控制单个页面的显示与隐藏。
注意!!!
从我这个思路开始,就是我踩坑的第一步。
控制显隐想当然就采取了v-if。。。
万万忘了v-if可不是简单的控制元素显示和隐藏,它可是创建和销毁元素来达到所谓的显隐效果。
当然,上面都是我马后炮式的后知后觉,和报错交锋的时候依旧沉浸在代码逻辑层面。
之前有说过:像这种[Vue warn]报错不影响程序运行,就是看着头疼。
这次不一样了,tab切换后,原来图表位置空空如也
请添加图片描述
可见,这次的爆红是势必要解决的🤺🤺🤺

问题梳理

在这里插入图片描述
跟着报错位置找到对应的代码:
在这里插入图片描述
行呗,我就获取一下元素咋就爆红呢!!!
我dom无效,也就是没找到。
页面有但是没找到,就说明我们在渲染前就执行这个方法。

问题解决

欸,有了!记得nextTick()方法吗?

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM

通俗理解:在任何地方你想获取dom,只要它没被创建,用nextTick就能进行dom操作了,无需等待哦。
在这里插入图片描述
自从用了nextTick,我是腿也不疼了(图表重见天日),眼也不花了(爆红完美消失)
请添加图片描述
谢赏脸(❁´◡`❁)

这里是飞鱼爱吃米,只授渔,不授鱼!

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
出现错误"Error: Initialize failed: invalid dom."的原因是在切换页面时,由于DOM被销毁,图表的DOM元素无法找到导致的。这个错误可以通过添加一个判断来解决。在切换页面时,判断DOM元素是否存在,如果存在,则进行图表的初始化和渲染操作,如果不存在,则跳过该操作。这样可以避免在DOM元素销毁后仍然尝试渲染图表而导致的错误。下面是一个示例代码片段: ``` pieChart() { if (chartDom) { const myChart = echarts.init(chartDom) const option = { // 图表的配置项和数据 } option && myChart.setOption(option) } } ``` 通过这样的判断,可以避免在找不到DOM元素时进行图表初始化,从而解决"Error: Initialize failed: invalid dom."的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue使用echarts报错Error: Initialize failed: invalid dom.](https://blog.csdn.net/qq_44179024/article/details/129183480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Echarts报错Error in v-on handler: “Error: Initialize failed: invalid dom.](https://blog.csdn.net/yolo_link/article/details/125561996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值