收藏
回答

自定义控件在某些情况下显示不出来?


这一行代码不显示,上面默认的wx.showToast是可以显示的

跟踪代码,在下面方法打断点时,第一句打断点,执行了之后代码都会执行(此时控件可以显示了),但是跳过第一句打断点,在第二句打断点并不会执行,后面代码都不会执行了


此处第一句代码执行,能够正常做动画,显示出view了




此处,第二句断点不执行(28行代码),日志也没有打印出来,没有执行后面代码了??

showToast(val, _isErrorToast) {
 
      // 防止重复弹出
      if (util.antiShakeChecked()) return
 
      var animation = wx.createAnimation({
        duration: 300,
        timingFunction: 'linear',
      })
 
      console.log("AAAAAAAAA")
      this.animation = animation
      animation.opacity(1).step().translateY(50).step()
      if (this.data.isErrorToast) {
        this.setData({
          animationData: animation.export(),
          content: val,
          fontColor: "#f00"
        })
      } else {
        this.setData({
          animationData: animation.export(),
          content: val,
          fontColor: "#fff"
        })
      }
 
      /**
       * 延时消失
       */
      setTimeout(function() {
        animation.translateY(0).step().opacity(0).step()
        this.setData({
          animationData: animation.export(),
          isErrorToast: false
        })
      }.bind(this), 2000)
 
    }
goLogin() {
    // 防重复点击
    if (util.antiShakeChecked()) {
      return
    }
 
    var _isPswdLogin = this.data.isPswdLogin
    var _userPhoneNum = this.data.userPhoneNum
    if (util.isNull(_userPhoneNum)) {
      // wx.showToast({
      //   title: 'hello',
      // })
      this.toast.showToast('手机号为空');
      return
    }
    if (!util.checkPhoneNum(parseInt(_userPhoneNum))) {
      this.toast.showToast('手机号格式错误');
      return
    }
}


最后一次编辑于  2019-10-31
回答关注问题邀请回答
收藏

1 个回答

  • move
    move
    2019-10-31

    这种一般是逻辑问题,多检查一下逻辑。

    2019-10-31
    有用
    回复 3
    • Assen
      Assen
      2019-11-01
      你没明白我意思,我弄不明白的是为啥我打了断点就可以正常显示,没打断点就不能显示,而且第一句断点不打,后面打断点还是不执行
      2019-11-01
      回复
    • Assen
      Assen
      2019-11-01
      大佬,我明白了,两次调用防重复点击的操作
      2019-11-01
      回复
    • Assen
      Assen
      2019-11-01
      谢谢大佬
      2019-11-01
      回复
登录 后发表内容
问题标签