taro hook 倒计时setInterval版

let timer;
const Index = () => {
const [count2, setCount2] = useState(0)
useEffect(() => {
timer && clearInterval(timer);
return () => timer && clearInterval(timer);
}, []);
useEffect(() => {
if (count2 === 10) {
timer = setInterval(() => setCount2(c => --c), 1000) // 重点 一定要--c 因为先减才会出发useEffect
    }
if (count2 === 0) {
clearInterval(timer)
}
}, [count2])
const onClick = () => {
setCount2(10)
}
return (
<View className='wrapper'>
<View onClick={onClick}>{ count2? `${count2}秒后获取`: '获取验证码' }</View>
</View>
);
};
posted @ 2021-11-24 11:33  Edison~~  阅读(325)  评论(0编辑  收藏  举报