echarts 短时间内重新渲染图标不显示/空白问题

1.问题详细描述

项目框架背景是vue3,在页面实现echarts时,出现了在首次渲染echarts图表>退出系统->再次进入echarts图表页面的过程中,再次进入echarts图表时 不显示的问题。效果图如下。

2.解决方法

在观察中,得知数据获取中并没有问题,那就是在数据在图表的渲染过程中出现了问题。

再去观察图表的渲染过程层,发现图表的DOM种存在一个特殊的属性,_echarts_instance_。

这个东西相当于是一个ID,图表在每次刷新的过程中,它都会发生变化,然后重新渲染。

联想到我使用的Vue+vue-router的框架,答案就呼之欲出了。我猜测的是,由于存在这个属性的变更,但是vue的渲染特殊性,在页面跳转与返回时,修改的是路由,导致图标ec并没有发生改变,导致在渲染的时候,echarts认为并不需要重新渲染,导致出现有数据但是没有出现图标的问题。

到这里就可以针对性解决这个问题。找到这个属性,将它删除。

const LC = document.getElementById("chartLeft")
LC.removeAttribute('_echarts_instance_');
let leftChart = echarts.init(LC);
leftChart.setOption(option)

再次尝试,果然就OK了。

问题虽然暂时解决了,但是在去翻echarts API的时候,并没有找到相关的介绍。这里我就默认是这个原因了 也许是误打误撞刚好解决了问题,也许这样解决问题还有着什么弊端。如果看到这篇文章的你有兴趣(默认你也出现了这样的问题),可以深究问题,回来贴一下答案。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值