收藏
回答

微信小程序函数连续点击会出现重复调用?

函数连续调用有一定几率会触发两次?下面"hi,点击登录"调用函数,连续点击时会触发两次,因为登录用到wx.getUserProfile,必须直接点击调用,不可以通过其他函数调用,所以不能用防抖节流,用一个变量判断是否第一次点击也不行,还可以触发两次,有解决过的大佬没?求教😭

重复调用会跳转两次login页面,这时候进行登录就会失败,我觉得是在函数刚调用未进判断时就再次调用了一遍,所以会出现if判断没拦住的的情况

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

1 个回答

  • 正青春
    正青春
    01-19

    给你个建议,点击一次就立马隐藏掉按钮,接着实现登录函数,判定返回值,如果成功登录了,就隐藏登录按钮,如果没有成功,显示登录按钮(一般写好没有问题,一定是成功的);

    一般情况的判定:在点击登录前加个判定,比如在onshow里写个方法,判定用户是否已经登录,如果登录了,登录按钮不显示,如果没登录,就显示,加一个显示/隐藏的样式就行;未登录是,显示登录按钮,第一次登录后,隐藏登录按钮。

    01-19
    有用
    回复 7
    • 町畦
      町畦
      01-19
      这个用过了,不行,还是可以调用两次🤣
      01-19
      回复
    • 町畦
      町畦
      01-19
      我感觉就是函数还没执行,就又调用了,所以执行了两遍😵‍💫
      01-19
      回复
    • 正青春
      正青春
      01-19回复町畦
      那登陆即使登录两次也不会报错,你直接获取头像昵称,openid,放到数据库里,返回用户ID,用户ID加上缓存,已经存在了数据,直接返回用户ID
      01-19
      回复
    • 町畦
      町畦
      01-19回复正青春
      奥奥,确实不是这个引发的报错,但是现在因为两次调用函数,进入了两次login页面,登录成功之后wx.redirectTo跳转相关页面,这时如果返回点击,还能回到login页面,因为进入两次login页面,此时还存在一个login页面😰
      01-19
      回复
    • 町畦
      町畦
      01-19回复正青春
      最好的方法应该就是禁止重复调用,但if判断拦不住,用您说的两个按钮的方法也拦不住😰
      01-19
      回复
    查看更多(2)
登录 后发表内容