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

相关推荐
JiangJiang几秒前
🧠 面试官:受控组件都分不清?还敢说自己写过 React?
前端·react.js·面试
tianchang几秒前
JS 中 Map 的概念与使用
前端·javascript
Jenlybein几秒前
[ Javascript 面试题 ]:提取对应的信息,并给其赋予一个颜色,保持幂等性
前端·javascript·面试
Carlos_sam1 分钟前
Opnelayers:向某个方向平移指定的距离
前端·javascript
夜熵2 分钟前
JavaScript 中的 this
前端·面试
前端小巷子5 分钟前
CSS 单位指南
前端·css
St5 分钟前
探索JavaScript原型链设计——详解prototype、__proto__及constructor三者之间的关系
前端·javascript
前端大白话5 分钟前
JavaScript中`Symbol.for()`和`Symbol()`的区别,在创建全局唯一的`Symbol`值时如何选择使用?
前端·javascript·设计模式
喵爱吃鱼5 分钟前
原来这就是react设计模式啊
前端·javascript·react.js
前端大白话7 分钟前
前端必看!90% 工程师踩过的状态管理坑,useReducer 如何一招化解?
前端·javascript·react.js