【wepy】设置disabled的值 不生效 解决办法

问题原因

举例说明,以 button 倒计时为例子;
给 button 的 disabled 赋值 this.isDisabled == true; 不生效

代码实例 template
<template>
  <button 
   class="code"
   @tap="code" 
   disabled="{{isDisabled}}">
   {{codeText}}{{isDisabled }}
  </button>
</template>
代码实例 script
	data = {
	    codeText:"获取验证码",
	    isDisabled:false                //初始化   disabled 为   false;
	};
  
	//methods方法
	
	code(){
	 this.isDisabled == true;          //当点击之后修改 disabled 为 true ;
	 this.$apply();                         // 手动触发脏检测
	 var second = 60;
	 var t = setInterval(()=> {
	   if (second <= 0) {
	     this.isDisabled== false;      //倒计时结束后修改 disabled 为 false;
	     second = 0;
	     this.codeText = "重发验证码"
	     
	     clearInterval(t);
	   } else {
	     second--;
	     this.codeText = second + "秒后重发"
	   }
	   this.$apply()
	 }, 1000);
  }
结果如图所示

点击之前
在这里插入图片描述
点击之后
在这里插入图片描述
对此,我们可以发现问题,设置的this.isDisabled == true;不生效;

解决办法

后来我换了一种思维,不去赋值,直接取反,已经解决这个问题


this.disabled = !this.disabled;

并且不要忘记this.$apply(); 手动触发脏检测,否则有可能会出现视图不会自动更新

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值