微信小程序短信验证码倒计时不会开始,是不是下面的代码异常导致的,该怎么改动


 
// 倒计时
  countDown() {
    //倒计时
    let time = 60;
    let timer = setInterval(() => {
      if (time == 0) {
        clearInterval(timer);
        var codetext = '获取验证码';
        this.setData({
          disabled: false,
          codetext: codetext,
        })
      } else {
        this.setData({
          disabled: false,
          codetext: time + '秒',
        })
        time--
      }
    }, 1000)
  },

在这里console.log(time)看看

img

看着没啥问题 排查一下其他位置?

看看 调用countDown方法的位置代码


       let num=60
       let time=setInterval(function(){
        num--
       if(num<=0){
               clearInterval(time)
               that.codeText='获取验证码'
       }else{
               that.codeText=num+'s'
      }
},1000)

改成这样:

// 倒计时
  countDown() {
    //倒计时
    let time = 60;
  let that = this;// 加的代码
    let timer = setInterval(() => {
      if (time == 0) {
        clearInterval(timer);
        var codetext = '获取验证码';
        that.setData({
          disabled: false,
          codetext: codetext,
        })
      } else {
        that.setData({
          disabled: false,
          codetext: time + '秒',
        })
        time--
      }
    }, 1000)
  },