uni-app 项目中发现$refs用不了
- 发布:2019-01-25 16:00
- 更新:2021-10-11 11:00
- 阅读:40967
uni-app 项目中发现$refs用不了
uni里面的内置组件(view text)不能使用ref 如果是自定义组件的话 可以用ref获取到
但是如果循环创建的自定义组件的话 ref也不能用了
这里可以推荐一个万金油方法 标签上id 然后
const query = uni.createSelectorQuery().in(this).select("#id")._component.$children
uni-app 中可以使用$refs,但是需要注意的是在小程序和App平台不能引用 view 等内置组件。
-
还是不行啊 对view 使用ref="over" 结果 this.$refs.over 在真机上是undefined 使用H5元素也是 全部都是undefined 只有 自己的编写的组件 使用ref 可以取出来
<es-line ref="line"></es-line> this.$refs.line.show() 这个可以2019-05-28 11:41
-
试了下,微信小程序可以用。支付宝小程序中有点问题,但是可以改变方法获取,具体请看:解决 uni-app 自定义组件在支付宝小程序中无法使用 ref 的问题
2020-07-03 15:28
我做抖音小程序也遇到这个问题,开发工具里一点都正常,一旦真机使用$refs就报错
解决办法如下(困扰了我三天):
参考官网的“.sync修饰符”
父组件:
<form-item ref="formItem" :isfromok.sync="isfromok"></form-item>
components: {
formItem
},
data() {
return {
isfromok: false //是否填写表单
};
},
子组件(直接修改父组件的值):
let data = 123456;
_this.$emit('update:isfromok',datas);
在父组件内可直接判断isfromok的值是否符合预期,不用再使用$refs了
如果需要执行子组件的方法,可以使用watch监听来实现,希望能够帮助更多的人
2***@qq.com - noob
这个坑还在啊? 内置组件的定义是什么?除了自建的组件都叫内置的组件吗?
-
内置组件指的是view这些,这个“坑坑”是由于这些组件不是vue组件,且和用户的代码不在同一个环境中(不在逻辑层而在视图层),获取不到。
2020-10-13 20:03
-
回复 DCloud_UNI_GSQ: 请问,app里使用this.$refs获取dom,Echarts.init(this.$refs.PriceChartBig);报错undefined is not an object (evaluating 'dom.nodeName.toUpperCase')咋办
2022-07-11 15:15
DCloud_UNI_GSQ
看文档可以避免很多
2021-05-28 17:14
Cohen
回复 DCloud_UNI_GSQ: 确实,不过当下这个问题有什么好的解决方法吗
2023-07-06 10:58