当前位置: 首页 > article >正文

[element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案

问题描述
在没有进行任何操作的时候,使用

this.$refs.xxxx 

无法获取el-dialog中的内部元素,这个问题会导致很多bug.
官方解释,在open事件回调中进行,但是open()是弹窗打开时候的会调,有可能在此处获取的时候,还没有渲染成功,导致依然获取不了。

1、可以通过定时器延时获取

<el-dialog  @opened="openWebRtc()" >
    <!--子组件 -->
   <web-rtc ref="webrtc" v-show="showWebRtcVideo" :videoUrl="WebRtcVideoUrl"></web-rtc>
</el-dialog>
 
openWebRtc(){
   setTimeout(() => {
    this.$refs.webrtc.start();
  }, 0);
},

2、通过opend会调获取

<el-dialog  @opened="openWebRtc()" >
    <!--子组件 -->
   <web-rtc ref="webrtc" v-show="showWebRtcVideo" :videoUrl="WebRtcVideoUrl"></web-rtc>
</el-dialog>
 
openWebRtc(){
   this.$refs.webrtc.start();
},

3、 强制加载dialog中的内容

在这里插入图片描述
使用下面的代码,就是将dialog强制加载一遍,这个因为速度快肉眼是看不见加载的过程的

mounted() {
    this.updateInsertOpen = true //:visible.sync="open"
    this.$refs.updateInsertDialog.rendered = true //updateInsertDialog是dialog的ref;
    this.updateInsertOpen = false
  },


参考:
element-UI 组件 dialog 中 ref 获取不到的问题解决方案

vue中el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案 使用强制提前加载dialog方法


http://www.kler.cn/a/146475.html

相关文章:

  • 卷积神经05-GAN对抗神经网络
  • 网络科技有限公司网络设计
  • 02JavaWeb——JavaScript-Vue(项目实战)
  • Linux安装Docker教程(详解)
  • HunyuanVideo 文生视频模型实践
  • MLX90640自制热像仪(四) LVGL UI界面设计 移植 SquareLine Studio
  • ArrayList类
  • 编程中的解密之路:挑战、创新与技术难题的探索
  • 二十七、RestClient查询文档
  • 跨链原子交换
  • 《微信小程序开发从入门到实战》学习三十二
  • Spring Boot + hutool 创建海报图片
  • Typescript和Javascript的区别是什么?一文带您了解Typescript排名飙升的原因!
  • Open3D库进行点云的DBSCAN密度聚类和可视化 c++ 代码
  • 【Java】使用IntelliJ IDEA搭建SSM(MyBatis-Plus)框架并连接MySQL数据库
  • 【开源】基于Vue和SpringBoot的木马文件检测系统
  • 在Linux中对Docker中的服务设置自启动
  • 一起学docker系列之八使用 Docker 安装配置 MySQL
  • 梨花声音教育,美食视频配音再次挑战味蕾
  • rdf-file:分布式环境下的文件处理
  • 131.类型题-计算数学序列的和,请编写函数fun,其功能是S=……【满分解题代码+详细分析】(数学序列的和类型题-C/C++JavaPython实现)
  • 小程序wx:if和hidden的区别?
  • 卸载软件最最最彻底的工具——Uninstall Tool
  • PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables
  • LLaMA 2:开源的预训练和微调语言模型推理引擎 | 开源日报 No.86
  • 【虚拟机】在VM中安装 CentOS 7