react中使用定时器

该博客展示了如何在React应用中实现一个倒计时功能,包括设置初始秒数、清除定时器以及在倒计时结束后重置按钮状态。通过`useState`和`useEffect`钩子函数来管理组件状态,并在倒计时结束时触发验证码重新发送。用户可以通过点击按钮发送验证码并启动倒计时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//let 一个倒计时变量
   let timer
const [second, setSecond] = useState(59) //倒计时秒数
  const [second, setSecond] = useState(59); // 倒计时秒数
 const [timer, setTimer] = useState(''); // d定时器Key
  useEffect(() => {
   setTimer('');
    clearInterval(timer)
    return () =>  clearInterval(timer)
  }, [])
  useEffect((() => {
    if (second > 0 && second < 60) {
    } else {
    setTimer('');
      clearInterval(timer)
      setBtnDisabled(false);
      setSecond(60);
    }
  }), [second])


  
    // 发送验证码,开启倒计时
    const sendCode = () => {
     setTimer(setInterval(() => setSecond((pre) => pre - 1), 1000));
      setBtnDisabled(true)
    }
//使用
 <Form.Item
            name="code"
            label="验证码"
            rules={[
              {
                required: true,
                message: '请输入邮箱中的验证码',
              },
                <Input
              style={{ width: '90%', marginRight: '35px' }}
              placeholder="请输入邮箱中的验证码" />
          </Form.Item>
             <Form.Item>
            <Button style={{fontSize: '12px'}}
             disabled= {btnDisabled} type="primary" onClick={() => {
              getKaptchacode()
              sendCode()
                }}>
                验证码 {second<59?second:''}
                </Button>
          </Form.Item>
        
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值