收藏
回答

请问你们的小程序防重复点击都怎么做的?

你们的小程序防重复点击都怎么做的  我们现在的做法是进方法if(this.data.index==0){ that.setData({that.data.index=1  代码逻辑   最后that.data.index=0 })} 这样严重影响了代码的可读性  不做放重复点击的话 不管是跳转还是网络请求都有很多问题  官方也没有给出一个好的方法或者是给api加上放重复点击   你们有没有什么好办法??

回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2018-11-15

    你不需要setData啊。。直接 this.index=0 this.index=1 这样就行啦

    2018-11-15
    有用
    回复 8
    • 卢霄霄
      卢霄霄
      2018-11-15回复一叶已障目

      不不不不。。你理解错了。。我的意思是,你不需要setData。。你就写成

      if(this.prevent){

          return

      } else {

          this.prevent = true

      }

      wx.request({

          ...

          success: xxx=>{

              ...

              this.prevent = false

          }

      })

      2018-11-15
      回复
    • 一叶已障目
      一叶已障目
      2018-11-15

      又学到一招  但还是觉得这种方式不太好  很多方法调方法很容易就漏掉了  提前放开的话又没有效果  大佬有没有什么好方法

      2018-11-15
      回复
    • 卢霄霄
      卢霄霄
      2018-11-15回复一叶已障目

      看你的需求是什么样子。。如果是初始化阶段防止点击,可以用 wx.showLoading({mask:true})。。如果只是控制频率,可以setTimeout把 this.prevent复位为false。。

      2018-11-15
      回复
    • 卢霄霄
      卢霄霄
      2018-11-15回复一叶已障目

      可以封装成方法呀,然后各自用不同的prevent属性,preventTap preventSearch preventNav 然后做个方法统一去判断复位。。

      2018-11-15
      回复
    • 一叶已障目
      一叶已障目
      2018-11-15回复卢霄霄

      初始化的都还好说 就是控制快速点击的 严重影响代码可读性  有些方法调方法 发送多个请求的时候很容易漏掉  比如请求后success里面放开了  然后fail里里面忘记了  又不能放在complete同一放开的情况 还是很多的



      2018-11-15
      回复
    查看更多(3)
登录 后发表内容