vue2通过$refs调用子组件方法

问题描述

提示:这里简述项目相关背景:

父组件更新筛选项时,需要重置子组件相关参数。使用$refs时使用this.$refs['productCostTableRef'].resetFn('resName') 的写法,发生以下报错:

但是该方法在调用elementui 组件时不会报错。

html 复制代码
<el-popover ref="popover-ref">
</el-popover>
js 复制代码
this.$refs["popover-ref"].doClose(); // 成功执行popover关闭的事件

原因分析:

ref 写在标签上时:this.$refs.名字 / this.$refs['名字'] 获取的是标签对应的dom元素

ref 写在组件上时:这时候获取到的是子组件的引用


解决方案:

使用$ref调用自定义子组件的方法时,要用this.$refs.refName.methodsName();去调用。

另外几种使用情形:

传参时:this.$refs.refName.methodsName('参数值');

获取参数值: this.$refs.refName.dataName

修改参数值: this.$refs.refName.dataName = newData

相关推荐
程序员小羊!17 小时前
01HTML预备知识
前端·html
xkxnq17 小时前
第八阶段:工程化、质量管控与高级拓展(130天),Vue端到端测试:Cypress自动化测试(登录流程+表单提交+页面跳转)
前端·vue.js·flutter
小雨下雨的雨17 小时前
基于鸿蒙PC Electron框架技术完成的五子棋游戏 - 技术实现详解
前端·javascript·游戏·华为·electron·鸿蒙
cheems952717 小时前
[开发日记]Spring Boot + MyBatis-Plus 抽奖系统开发复盘:从奖品创建、活动校验到前端圈选人员失效的一次完整排障
前端·spring boot·mybatis
老毛肚17 小时前
jeecgboot vue API 拆分02
前端·javascript·vue.js
赵谨言17 小时前
基于C#的在线编码与自动化测试全栈Web平台的设计与实现
开发语言·前端·c#
Raink老师17 小时前
【AI面试临阵磨枪-98】前端如何展示多模态流式输出:文字打字机 + 图片渐进 + 音频播放?
前端·人工智能·面试
AI_零食17 小时前
奶茶大数据运维表 - 鸿蒙PC Electron框架技术实现详解
运维·前端·华为·electron·开源·harmonyos·鸿蒙
小雨下雨的雨17 小时前
鸿蒙PC Electron框架实现流体气泡模拟器
前端·人工智能·算法·华为·electron·鸿蒙
ZC跨境爬虫17 小时前
跟着 MDN 学JavaScript day_4:如何存储你需要的信息——变量
开发语言·前端·javascript·ui·ecmascript