当我的应用程序中的progressState大于99时,我在哪里放置Clear Interval?
const [progressState, setProgress] = useState(0);
useEffect(() => {
const interval = setInterval(() => { setProgress(progressState => progressState + 1);}, 1000);
}, []); // this is only called once because of [], now i can't check for clearing
我因为功能性编程而感到困惑,即使添加1 1也正在成为一场噩梦。
我是否必须使用另一种用途方法来清除间隔?
我现在这样做
const [progressState, setProgress] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setProgress(progressState => {
progressState == 100 && clearInterval(interval)
return progressState + 1;
});
}, 100);
}, []);
在处理程序函数中。
const interval = setInterval(() => {
setProgress(progressState => progressState + 1);
if (progressState >= 99) {
clearInterval(interval);
}
}, 1000);