//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>
react中使用定时器
于 2022-12-20 14:49:58 首次发布