这是一个番茄钟,所以我在useEffect内使用setInterval,但是它只是停止了,演示: https://snack.expo.io/@gpbaculio/curious-orange
React.useEffect(() => {
if (startTimer) {
return;
}
if (start) {
const animation = Animated.timing(percent, {
toValue: width / 2,
duration: totalSeconds * 1000,
});
animation.start();
const timer = setInterval(() => {
setTime(secondsToHms(totalSeconds - 1));
setTotalSeconds(totalSeconds - 1);
}, 1000);
setStartTimer(timer);
}
}, [percent, start, startTimer, totalSeconds, time]);
为什么setInterval没有运行?当我确定要放在第二个数组上时,什么也没有更新,只是间隔没有运行。刚开始我在上面使用redux,这很好,但是我认为redux是对它的过度设计,所以我想使用简单的反应。