解决 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)
})
相关推荐
king王一帅1 天前
Incremark Solid 版本上线:Vue/React/Svelte/Solid 四大框架,统一体验
前端·javascript·人工智能
Nan_Shu_6141 天前
学习: Threejs (1)
javascript·学习
Van_Moonlight1 天前
RN for OpenHarmony 实战 TodoList 项目:加载状态 Loading
javascript·开源·harmonyos
qq_406176141 天前
关于JavaScript中的filter方法
开发语言·前端·javascript·ajax·原型模式
@@小旭1 天前
实现头部Sticky 粘性布局,并且点击菜单滑动到相应位置
前端·javascript·css
Van_captain1 天前
rn_for_openharmony常用组件_Divider分割线
javascript·开源·harmonyos
Yanni4Night1 天前
Parcel 作者:如何用静态Hermes把JavaScript编译成C语言
前端·javascript·rust
天意pt1 天前
Blog-SSR 系统操作手册(v1.0.0)
前端·vue.js·redis·mysql·docker·node.js·express
遇见~未来1 天前
JavaScript构造函数与Class终极指南
开发语言·javascript·原型模式
清风ai明月1 天前
在vue3中Promise是什么
vue.js