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的错误。

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

相关推荐
赵民勇3 分钟前
ES5中prototype和prototype.constructor详解
javascript
xiaoyustudiowww4 分钟前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
TOPGUS5 分钟前
谷歌Chrome浏览器即将对HTTP网站设卡:突出展示“始终使用安全连接”功能
前端·网络·chrome·http·搜索引擎·seo·数字营销
C_心欲无痕12 分钟前
ts - 模板字面量类型与 `keyof` 的魔法组合:`keyof T & `on${string}`使用
linux·运维·开发语言·前端·ubuntu·typescript
Van_captain13 分钟前
rn_for_openharmony常用组件_Tabs选项卡
javascript·开源·harmonyos
赵民勇15 分钟前
ES6中的const用法详解
javascript·es6
一勺菠萝丶17 分钟前
Java 后端想学 Vue,又想写浏览器插件?
java·前端·vue.js
@PHARAOH22 分钟前
HOW - 如何禁用 localstorage
前端·状态模式
霍理迪23 分钟前
CSS布局方式——弹性盒子(flex)
前端·css
Irene199124 分钟前
Vue 3中:setup 函数接收两个重要参数:props 和 context(附:setup 中无法访问 this 详解)
vue.js·setup