在UseEffect内使用条件更改状态(带钩的简单计数器)

我试图建立一个从0到100的简单百分比计数器,该计数器使用useEffect()中的SetInterval()更新自身。我可以使计数器工作,但是一旦计数器达到100%,我想重新启动计数器。这是我的代码:

const [percentage, setPercentage]=useState(0);

    useEffect(() => {

const intervalId= setInterval(() => {

            let per = percentage=> percentage+1

            if(per>=100){
                per=0
            }



         setPercentage(per)





        }, 100);



        return () => {

        }
    }, [])

在控制台内部,我可以看到状态正在增加,但是一旦它达到100,它将忽略if语句以将状态重置为0。我如何知道如果条件不适合使用钩子setState,该如何解决?

评论
朕好萌
朕好萌

检查百分比而不是百分比。 Per是函数类型,永远不会大于或等于100,百分比是将达到100的值。

点赞
评论