【echarts】Can‘t get DOM width or height. Please check dom.clientWidth and dom.clientHeight.

博客围绕Vue中ECharts渲染时无法获取DOM宽高的错误展开。介绍错误翻译为无法获取DOM宽高,需检查相关值不为0。错误情景是刷新浏览器加载不到,解决方法有在mounted()中用setTimeout()延迟加载,或利用Vue生命周期函数,强调要在DOM渲染结束后加载,还提及Vue生命周期。

错误

Can't get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload.

错误翻译

无法获取dom的宽高(简单来说就这个几个字)
翻译:无法获取DOM的宽度或高度。请检查dom。clientWidth dom.clientHeight。它们不应该是0。例如,你可能需要在window.onload的回调函数中调用它。

错误情景

笔者问题出现的情景:从其它页面跳转都没问题,可以正常加载展示,唯独一旦刷新浏览器就加载不到了(dom的宽高都已设置)。通过查资料研究发现出现问题是地方是“浏览器刷新后,页面是需要重新加载渲染,而在加载还未完成时,echarts图函数被已加载,页面还没渲染结束,肯定就获取不到DOM的宽高啦

错误解决方法

解决方法:笔者是在mounted() 中借助setTimeout()来延迟加载。
也可以利用vue生命周期函数来避免该问题的发生

mounted() {
        setTimeout(() => {
            this.get_echarts_1();
            this.get_echarts_2();
        }, 800)
    },

重点:一定要在DOM渲染结束后,再去加载

附加扩展

Vue 生命周期
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值