el-dialog弹窗的@open方法中,第一次引用ref发现undefined问题,第二次后面又正常了

解决方法

直接不用这个@open方法,转而用@opened,代码例子:

复制代码
<el-dialog title="单个新增" :visible.sync="PlacardShowSingle" @opened="openpbSingle()" width="1100px" top="1%" :close-on-click-modal="false">
    <div style="margin:20px; margin-top: -20px;">
        <PbscheduleSingle ref="PbscheduleSingle"></PbscheduleSingle>
    </div>
</el-dialog>

方法例子:

复制代码
//弹窗完全挂载dom后再调用
openpbSingle() {
    // 调用PbscheduleSingle组件的方法QueryPublishNumberQuantity
    this.$refs.PbscheduleSingle.QueryPublishNumberQuantity(); 
},

情况大致是:

1.第一次打开没调用组件内部方法,发现是undefined,@open 在对话框打开之前触发,并且ref="PbscheduleSingle",这个ref没挂载在dom,自然无法获取到相应的方法。

2.第二次打开,由于第一次打开,ref已经挂载在dom了,所以一切又正常了

  1. @opened 在对话框完全打开之后触发,组件已经完全挂载,所以不会出现undefined的错误。

还有其他方法可以解决,但是这个应该是最简洁明了的吧。

相关推荐
Csvn1 小时前
框架性能优化
前端
雪芽蓝域zzs2 小时前
第 5 节:Marker 点击弹出 InfoWindow 信息窗口
vue.js
回眸&啤酒鸭2 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013843 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员3 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子3 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒3 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
guslegend4 小时前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化
小宋10214 小时前
A2UI从零实战:Agent安全生成交互界面与事件回传
javascript·人工智能·安全·交互
大包子5 小时前
structuredClone vs lodash.cloneDeep:核心差异与选型指南
javascript·vue.js