我有此功能,可以完美地工作,但最终会陷入无限循环。
useEffect(() => {
if (!isReady) {
const prepTimer = () => {
let {eventDate} = {
eventDate: moment.duration().add({
minutes: 0,
seconds: 4,
}),
};
let count = 1;
const x = setInterval(
(function x() {
count = count + 1;
if (eventDate <= 0) {
clearInterval(x);
setPreparationOver(true);
setIsReady(true);
console.log('PREP STOPED');
} else {
eventDate = eventDate.subtract(1, 's');
console.log('PREP COUNTDOWN', eventDate);
}
return x;
})(),
1000,
);
};
prepTimer();
} else {
return null;
}
}, []);
我有类似的其他功能,但没有问题。 任何的想法? 谢谢!