千岛偏舟
千岛偏舟
  • 发布:2020-01-10 09:21
  • 更新:2023-02-23 14:50
  • 阅读:7281

uni-app如何在代码中获取控件对象

分类:uni-app

大概情况如下,我在页面文件中使用image标签显示图形验证码,如果看不清图形的话点击刷新图形验证码,如下代码所示:

<image ref="validateImg" :src="imgValidateCodeUrl"  @tap="refreshImgValidateCode"></image>

refreshImgValidateCode为刷新图形验证码的方法,代码如下:

refreshImgValidateCode:function(){  
   console.log(this.$refs.validateImg);  
   this.$refs.validateImg.src = this.imgValidateCodeUrl + '?raw=' + new Date().getTime();  
},

结果:在微信小程序中当点击图形验证码时,this.$refs.validateImg返回的是undefined,请问大家微信小程序中是如何解决该问题,是不是在微信小程序中$refs不能使用,如果不能使用有什么其他方式来实现同样效果,谢谢大家!

2020-01-10 09:21 负责人:无 分享
已邀请:
千岛偏舟

千岛偏舟 (作者)

感谢牛国辉提供得思路,原先的思路是获取image对象后去修改src属性的值从而达到了刷新图片的目的,但百度查了一下uni-app对$refs的使用有限制,实再没办法,只能利用vue的双向绑定的原理去修改用来赋值给src的变量imgValidateCodeUrl 来实现图片刷新。但感觉上不能获取html控件对象在开发上会带来不少的不便,以后只能具体问题具体解决了。
uni-app最近也是刚刚使用,东西虽好,但感觉坑很多不方便的地方也很多,除了对$refs使用限制,比如官方没有提供表单验证功能,虽然插件市场有提供但功能参差不齐,资料不全,需要花大量时间去试,另一个刚刚又发现一个问题,验证码在微信小程序能正常显示,在APP中显示不出来,看样子得继续折腾。

牛国辉

牛国辉

直接改变 imgValidateCodeUrl 即可,无需ref

  • 千岛偏舟 (作者)

    谢谢提供思路,我之前尝试过这种方式,不用ref,但没有效果:

    <image :src="imgValidateCodeUrl" @click="this.src = this.src + '?'">

    但没有效果,后来查了一下原因,对this关键字进行输出结果也是undefined,表示很无奈。

    2020-01-10 09:42

3***@qq.com

3***@qq.com

我也觉得uniapp的设计理念不大方便,用起来不顺手的感觉...

要回复问题请先登录注册