echarts第二次渲染不出来的原因
场景描述
echarts主要用于数据可视化展示
有些时候,我们可能会根据不同的条件,在页面上进行显示和隐藏。
比如说:页面最初展示了数据,当我点击不同的按钮的时候。
echarts会对应的展示或者隐藏。
下面当我点击单个机构的时候。
echarts会隐藏,点击多个机构的时候,echarts会展示出来。
使用v-show在本地没有问题但是上线后第二次不能够正确显示
<template>
<div>
<el-button type="primary" @click="handerDemo(1)">单个机构</el-button>
<el-button type="primary" @click="handerDemo(2)">多个机构</el-button>
<div id="demo" v-if="showFlag"></div>
</div>
</template>
<script>
import echarts from 'echarts'
export default {
data() {
return {
showFlag:true
}
},
created(){
// 我的请求,模拟的数据,大家不同管它
this.$api.get("http://127.0.0.1:666/newlist", {
params: {
id: '213'
}
}).then(res=>{
//调用echarts
console.log(res )
this.initEcharts()
})
},
mounted() {
},
methods: {
initEcharts() {
let demo = echarts.init(document.getElementById("demo"))
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
toolbox: {
feature: {
saveAsImage: {
pixelRatio: 2
}
}
},
series: [
{
name: '访问来源',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
//饼图每个板块之间有间隔
itemStyle: {
borderWidth: 2, //设置border的宽度有多大
borderColor: '#fff',//间隙颜色
},
data: [
{value: 335, name: '直接访问'},
{value: 310, name: '邮件营销'},
{value: 234, name: '联盟广告'},
{value: 135, name: '视频广告'},
{value: 1548, name: '搜索引擎'}
]
}
]
};
demo.setOption(option);
},
// 用于展示和隐藏哈
handerDemo(type){
if(type==1){
this.showFlag=false;
console.log(1)
}else{
console.log(1)
this.showFlag=true;
}
}
},
}
</script>
<style lang="scss" scoped>
#demo{
width: 600px;
height: 400px;
background: pink;
}
</style>
为什么第二次显示不出来
大家看见了刚刚的图片,我们发现当我点【单个机构】这个按钮的时候。
ecgarts正确隐藏了。
但是当我点击多个机构的时候。echarts却没有正确的显示出来。
大家不觉得很奇怪吗???
为啥会有这样的想象????
经过本人的大量实践,发现问题的原因,也找到了解决的办法。
如果装echarts的容器div上使用v-show,或者没有使用v-show
那么echarts第二次就不能够正确的显示出来
即使A页面显示echarts;然后去B页面;在返回A页面;
A页面的echrts的不能够正确的显示出来(这种情况会发生在打包后,在开发环境ok的)
解决办法的地址:https://www.cnblogs.com/IwishIcould/p/15354587.html
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝

微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2019-08-26 02-webpack的基本配置和输入webpack实现自动打包
2019-08-26 01-什么是webpack的简单介绍?