uni-app 一键登录存在Bug

uni-app 一键登录存在Bug

操作步骤:

  • uniapp 一键登录 如果不勾选服务条款 这时连续点击 会一直弹请同意服务条款

预期结果:

  • uniapp 一键登录 如果不勾选服务条款 这时连续点击 弹一次

实际结果:

  • uniapp 一键登录 如果不勾选服务条款 这时连续点击 会一直弹请同意服务条款

bug描述:

  • uniapp 一键登录 如果不勾选服务条款 这时连续点击 会一直弹请同意服务条款

| 开发环境         | 版本号   | 项目创建方式 |
|------------------|----------|--------------|
| Windows          | 64       | HBuilderX    |
| HBuilderX        | 3.1.22   |              |
| 手机系统         | 版本号   |              |
| Android          | Android 10 |            |
| 手机厂商         | 手机机型 |
| 小米             | 小米10   |              |
| 页面类型         |          |
| vue              |          |              |
| 打包方式         | 云端     |              |

更多关于uni-app 一键登录存在Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 一键登录存在Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的防重复点击问题。在uni-app一键登录场景中,当用户未勾选服务条款时,连续快速点击会触发多次弹窗提示。

解决方案建议:

  1. 添加点击状态锁:在点击事件开始时设置标志位,请求完成后再重置
let isClicking = false

function onLoginClick() {
  if (isClicking) return
  if (!agreedToTerms) {
    uni.showToast({title: '请同意服务条款'})
    return
  }
  
  isClicking = true
  // 执行登录逻辑
  // 在回调中重置 isClicking = false
}
  1. 使用防抖函数:限制短时间内重复执行
import { debounce } from 'lodash'

const debouncedLogin = debounce(() => {
  if (!agreedToTerms) {
    uni.showToast({title: '请同意服务条款'})
    return
  }
  // 登录逻辑
}, 1000)
回到顶部