解决Echarts图表使用v-show,显示不全,宽度仅100px的问题

5 篇文章 0 订阅
4 篇文章 0 订阅
在使用Echarts时遇到使用v-if切换图表导致的DOM未加载问题,改用v-show后,由于结构已存在,图表可能只显示一半。解决方案包括使用定时器延迟渲染或this.$nextTick确保DOM更新后再渲染图表,并使用echarts.resize()刷新图表尺寸。
摘要由CSDN通过智能技术生成

最近做echarts图表时,因为涉及到使用开关变量控制不同图表的显示隐藏,用v-if时会出现没有获取到dom结构而报错,所以改用v-show,但是v-show本身是结构已经存在,当数据发生变化时,结构并未重新渲染,所以会出现echarts图表未获取到最外层大盒子的宽度而显示一半的情况,就像下图:
在这里插入图片描述
出现这种情况有两种解决方法:
1. 使用定时器,调用渲染图表的函数时,设置延迟一秒图表就可以正常显示。
示例代码:
在这里插入图片描述
2.使用this.$nextTick(),建议用这个方法

this.$nextTick(()=>{
//在这里调用渲染图表的函数
)
示例代码:
在这里插入图片描述
注意:最后一定要使用echarts的resize()函数刷新图表,才能使图表重新渲染,宽高正常显示。
如:
在这里插入图片描述

参考内容:https://blog.csdn.net/hong521520/article/details/108603900

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值