解决 vue3 中 echarts图表在el-dialog中显示问题

原因:

第一次点开不显示图表,第二次点开虽然显示图表,但是图表挤在一起,页面检查发现宽高只有100px,但是明明已经设置样式宽高100%

这可能是由于 el-dialog 还没有完全渲染完成,而你的 echarts 组件已经开始尝试渲染图表了。你可以尝试使用 v-if 或者 v-show 来控制 echarts 组件的渲染时机,使其只在 el-dialog 完全渲染完成后才进行渲染(翻译过来就是加个定时器)。

解决:

javascript 复制代码
<ZyfChart v-if="echartsType"></ZyfChart> // 引用封装的Echarts组件时添加 v-if 判断
let echartsType = ref(false) // 初始设置为false
onMounted(() => {
    setTimeout(() => {
        echartsType.value = true
        // 添加setTimeout,设置echartsType 为true
    }, 100)
})
相关推荐
解道Jdon1 小时前
杨立昆退休?中国Deepseek超Llama 4触发Meta
javascript·reactjs
计算机-秋大田3 小时前
基于SpringBoot的信息技术知识赛系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
java·vue.js·spring boot·后端·课程设计
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS医院后台管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
不做超级小白4 小时前
JavaScript反爬技术解析与应对
开发语言·javascript·ecmascript
engchina5 小时前
使用Express.js和SQLite3构建简单TODO应用的后端API
javascript·sqlite·express
轻口味6 小时前
Vue.js `v-memo` 性能优化技巧
前端·vue.js·性能优化
prince_zxill6 小时前
Array.prototype 方法在复杂数据处理中的应用
前端·javascript·原型模式
键.6 小时前
react-bn-面试
javascript·react.js·ecmascript
prince_zxill8 小时前
WebSocket 实时通信详解:原理、应用与实践
javascript·网络·websocket·网络协议