React Native-使用useEffect的if / else无限循环

我有此功能,可以完美地工作,但最终会陷入无限循环。

 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;
        }
      }, []);

我有类似的其他功能,但没有问题。 任何的想法? 谢谢!

评论