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

错误

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 生命周期
在这里插入图片描述

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值