我的功能很完美,但最后却陷入无限循环。
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;
}
}, []);
我有其他类似的功能,但是没有问题。 任何想法? 谢谢!