flutter 获取验证码倒计时组件封装

send_sms_btn.dart

import 'dart:async';import 'package:flutter/material.dart';
import 'package:get/get.dart';// 发送验证码 按钮
class SendSmsBtn extends StatefulWidget {final Future<bool> Function()? onTap;const SendSmsBtn({super.key,this.onTap,});@overrideState<SendSmsBtn> createState() => _SendSmsBtnState();
}class _SendSmsBtnState extends State<SendSmsBtn> {int countdown = 60;Timer? timer;void sendRegisterMsgCode() {if (countdown == 60) {countdown--;setState(() {});timer?.cancel();timer = null;timer ??= Timer.periodic(const Duration(seconds: 1), (timer) {countdown--;if (countdown == 0) {timer.cancel();countdown = 60;}setState(() {});});}}@overridevoid dispose() {timer?.cancel();timer = null;super.dispose();}@overrideWidget build(BuildContext context) {return countdown == 60? InkWell(onTap: () async {//  AppToast.showLoading();final s = await widget.onTap?.call() ?? false;// AppToast.closeAllLoading();if (s) {sendRegisterMsgCode();}},child: Container(width: 123,height: 43,alignment: Alignment.centerRight,child: Text("发送验证码",style: TextStyle(color: Get.theme.primaryColor, fontSize: 14),),),): Container(width: 123,height: 43,alignment: Alignment.centerRight,child: Text("$countdown s重新获取",style: TextStyle(color: Get.theme.primaryColor, fontSize: 14),),);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【备忘录】MySQL 8.3 中删除的功能

MySQL 8.3 已经发布好长一段时间了&#xff0c;在做版本升级或新部署时务必坚持在8.3版本已经删除的一些配置参数&#xff0c;少走弯路。 以下项目已过时并已在 MySQL 8.3 中删除。如果显示替代方案&#xff0c;则应更新应用程序以使用它们。应修改使用 MySQL 8.3 中删除的功能…

CS162 Operating System笔记

What is an Operating System? it’s typically a special layer of software that provides the application access to hardware resources.So.it’s convenient abs fractions of complex hardware devices.

python单位换算例子

之前写的代码就是脑子想到啥就写啥&#xff0c;一堆if--slse 确实增加代码量&#xff0c;还能让领导觉得干得非常卖力。但是都是硬编码&#xff0c;代码简直无法直视&#xff0c;今天学了一个比较简单的方法&#xff0c;还把数据结构进行了简单的理解&#xff0c;照着写了下程序…

Qt实现Kermit协议(六)

3 实现 3.5 KermitFileRecver 该模块实现了Kermit异步接收文件功能。 3.5.1 KermitFileRecver定义 class QSerialPort; class KermitFileRecver : public QObject {Q_OBJECT public:explicit KermitFileRecver(QSerialPort *serial, QObject *parent nullptr);~KermitFile…

完全二叉树的权值

一道很简单的模拟题但还是有要注意的地方没层要读入的数据量是2的倍数但是最后一层会有不满的使用里面那层循环要写i和j两种判断而且每次加完一层就要比一次所以还要一ii循环但是又不让它增加因为i是读入数据才增加 #include<bits/stdc.h> using namespace std; long lo…

FHE全同态加密简介

1. 何为FHE&#xff1f; FHE (Fully homomorphic encryption)&#xff1a; 是一种隐私技术&#xff0c;支持直接对密文进行计算&#xff0c;而无需对密文先解密再计算。即&#xff0c;任何第三方或云厂商&#xff0c;都可对敏感信息的密文进行处理&#xff0c;而无需访问密文内…

快速安装/升级/卸载Ascend配套软件包的

一、参考资料 配套MindSpore 昇腾软件安装指引&#xff08;23.0.RC3&#xff09; 快速安装CANN 二、安装Ascend配套软件包 1. Ascend配套软件包简介 Ascend配套软件包&#xff0c;包括&#xff1a;固件、驱动和CANN&#xff08;Compute Architecture for Neural Networks&…

近距离共享数字化实战经验,深挖数据价值赋能千行百业

近期&#xff0c;思迈特软件积极投身于金融、制造、零售、医疗等多个行业的线下活动中&#xff0c;深度解析行业趋势&#xff0c;分享BI数字化创新解决方案&#xff0c;并与客户及合作伙伴进行深入交流。通过这些活动&#xff0c;不仅展示了思迈特软件在各领域的先进技术和成果…

【数据结构】双向链表 C++

一、什么是双向链表 1、定义 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。 双…

fakebook-攻防世界

题目 先目录扫描一下 dirseach 打开flag.php是空白的 访问robots.txt,访问user.php.bak <?php class UserInfo { public $name ""; public $age 0; public $blog ""; public function __construct($name, $age, $blog) { …

2024年【道路运输企业主要负责人】报名考试及道路运输企业主要负责人证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人报名考试根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

【测试开发学习历程】python推导式

Python当 目录 1 列表推导式 2 字典推导式 3 集合推导式 4 生成器推导式 中有如下的推导式&#xff1a; 列表推导式 字典推导式 集合推导式 生成器推导式 推导式的作用是可以快速地生成一个列表、字典或者集合&#xff0c;同时简化代码。 下面我们来介绍一下python中…

vue vue3 日期时间组件分装,三种不同的效果

写在前面&#xff1a; 基于elementPlus前端组件库&#xff0c;实现了两种日期时间组件的自定义封装&#xff1a; 1.第一种&#xff0c;年月日 2.第二种&#xff0c;年月周日 3.第三种&#xff0c;年月日 一、年月日自定义组件的封装 实现效果&#xff1a; 参考链接&#xff1a…

[C语言]二分查找

进行二分查找的前提是在一个有序排列的数组中查找指定元素。 例如&#xff0c;对一个升序排列的整型数组进行二分查找&#xff1a; // 二分查找 // 参数1&#xff1a;arr--需要传入一个有序的、按升序排列&#xff08;从小到大&#xff09;的整型数组 // 参数2&#xff1a;len…

系统学习Python——装饰器:验证函数的参数案例-[实现细节:函数内省]

分类目录&#xff1a;《系统学习Python》总目录 装饰器的代码依赖于内省API和对参数传递的微妙限制。为了完全地通用&#xff0c;原则上我们可以完整模拟Python的参数匹配逻辑&#xff0c;来看看哪个名称以何种模式传入&#xff0c;但是这对于我们的工具来说太复杂了。如果我们…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/

【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动

宝马X5前中排座椅宽大舒适&#xff0c;车厢内储物空间丰富。操控性能极佳&#xff0c;底盘稳扎精良。原车为氙气灯&#xff0c;其实宝马的氙气大灯配的比其他车型要好&#xff0c;照明效果是没得说的。但是不管什么灯久了都会出现光衰的情况。下面这辆宝马X5车灯已老化严重。 宝…

14届蓝桥杯省赛 C/C++ B组 T4 飞机降落 (DFS)

记录此题提醒自己&#xff0c;此类时间轴问题可以通过DFS解决 DFS不是能解决所有题吗 对于此题&#xff0c;我们将降落的飞机的个数和时间轴作为DFS的形参&#xff0c;这样可以节省手动回溯的过程。 并且在DFS的过程中我们要加入一些贪心策略&#xff0c;否则直接爆搜有可能搜…

怎么使用jwt,token以及redis进行续期?

怎么使用jwt&#xff0c;token以及redis进行续期&#xff1f; 什么是jwt? 什么是token? 结合 JWT、Token 和 Redis 进行续期的一般步骤&#xff1a; 生成 JWT&#xff1a; 用户登录成功后&#xff0c;服务器生成一个 JWT&#xff0c;并返回给客户端。 import io.jsonwebtok…

云原生周刊:2024 年 K8s 基准报告 | 2024.4.8

开源项目推荐 Argo CD Image Updater Argo CD Image Updater 是一个自动更新 Argo CD 管理的 Kubernetes 工作负载容器镜像的工具。简而言之&#xff0c;它将跟踪 Argo CD 应用程序资源上的注释指定的图像版本&#xff0c;并通过使用 Argo CD API 设置参数覆盖来更新它们。 …