HarmonyOS Button倒计时获取验证码的实现

HarmonyOS
21h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

参考代码:

@Entry
@Component
struct Page33 {
  // 验证码按钮显示信息状态
  @State captchaButtonText: string = '获取验证码';
  // 滑块验证显示/隐藏状态
  @State sliderVisibility: Visibility = Visibility.None;

  // 页面即将消失时的回调函数
  aboutToDisappear() {
    // 清除验证码倒计时定时器
    clearInterval(globalThis.captchaTimerId);
  }

  // 构建组件树
  build() {
    // 主要布局
    Column() {
      // 验证码按钮
      Button((this.captchaButtonText))
        .fontSize('32lpx')
        .fontColor('#FF1919')
        .width('50%')
        .onClick(() => {
          // 判断是否开始倒计时
          if (this.captchaButtonText === '获取验证码') {
            // 设置初始倒计时时间为60秒
            globalThis.remainingSeconds = 60;
            // 更新验证码按钮文本为剩余秒数
            this.captchaButtonText = globalThis.remainingSeconds + 's';

            // 清除已存在的定时器
            clearInterval(globalThis.captchaTimerId);

            // 创建新的倒计时定时器
            globalThis.captchaTimerId = setInterval(() => {
              console.log('==== 定时器执行:', this.captchaButtonText);
              // 减少一秒
              globalThis.remainingSeconds--;
              // 更新验证码按钮文本
              this.captchaButtonText = globalThis.remainingSeconds + 's';

              // 倒计时结束,恢复初始状态
              if (globalThis.remainingSeconds <= 0) {
                this.captchaButtonText = '获取验证码';
                // 清除定时器
                clearInterval(globalThis.captchaTimerId);
              }
            }, 1000);
          }
        });
    }
    .width('100%');
  }
}
分享
微博
QQ
微信
回复
18h前
相关问题
HarmonyOS 实现倒计时功能
56浏览 • 1回复 待解决
HarmonyOS 倒计时天数
336浏览 • 1回复 待解决
如何实现文本类型倒计时
923浏览 • 0回复 待解决
HarmonyOS 倒计时方法
31浏览 • 1回复 待解决
HarmonyOS TextTimer倒计时问题
3浏览 • 1回复 待解决
HarmonyOS 请问ArkTS如何实现倒计时功能?
32586浏览 • 8回复 待解决
HarmonyOS 如何自动倒计时组件
473浏览 • 1回复 待解决
HarmonyOS 60秒倒计时demo
191浏览 • 1回复 待解决
HarmonyOS 申请验证码demo实现
78浏览 • 1回复 待解决
实现验证码登录之前滑动验证实现
167浏览 • 1回复 待解决
如何实现一个倒计时器?
502浏览 • 1回复 待解决
HarmonyOS Timer倒计时自定义
454浏览 • 1回复 待解决
前端验证码配合后端实现思路?
3445浏览 • 1回复 待解决
HarmonyOS 如何实现滑动验证码功能
562浏览 • 1回复 待解决
HarmonyOS 验证码输入样式
36浏览 • 1回复 待解决
HarmonyOS TextTimer60秒倒计时显示成00
30浏览 • 1回复 待解决
如何实现一个验证码弹窗子窗口
420浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人