Reactjs 如何在useEffect中返回false或true并将其传递给另一个useEffect方法

Reactjs 如何在useEffect中返回false或true并将其传递给另一个useEffect方法,reactjs,react-hooks,Reactjs,React Hooks,我想检索最新的useffect的值,它是真的还是假的,并将其传递到第一个useffect的花括号中,这样当它向上或向下时,它将停止递减倒计时 const curLevel=2; 常数newTimer=curLevel*15; const timeRef=useRef(null); 常量级别=useRef(null); 常数[秒,设置秒]=使用状态(新定时器); //倒计时 useffect(()=>{ 常量计时器=设置间隔(()=>setSeconds(seconds=>seconds-1),

我想检索最新的useffect的值,它是真的还是假的,并将其传递到第一个useffect的花括号中,这样当它向上或向下时,它将停止递减倒计时

const curLevel=2;
常数newTimer=curLevel*15;
const timeRef=useRef(null);
常量级别=useRef(null);
常数[秒,设置秒]=使用状态(新定时器);
//倒计时
useffect(()=>{
常量计时器=设置间隔(()=>setSeconds(seconds=>seconds-1),1000);
timeRef.current=计时器;
返回()=>clearInterval(计时器);
}, []);
useffect(()=>{
如果(秒===0 | |{在此处传递返回值})clearInterval(timeRef.current);
},[秒];
//水平比较
useffect(()=>{
const storedLevel=curLevel;
level.current=存储级别;
return()=>storedLevel
}, []);
useffect(()=>{
console.log(level.current,curLevel)//输出(2,3)
如果(level.current!==curLevel){}
//我想得到值(真或假),并将其传递到第一个useEffect的花括号中,这样当它向上或向下时,它将停止递减倒计时。

},[]);
您需要将该布尔属性添加到状态,然后在第一个
useffect
中跟踪它:

const [isCurrentlevel, setIsCurrentLevel] = useState(false);

//...
 useEffect(() => {
    if (isCurrentLevel) {
        const timer = setInterval(() => setSeconds(seconds => seconds - 1), 1000);
        timeRef.current = timer;
        return () => clearInterval(timer);
    }
  }, [isCurrentlevel]);

 useEffect(() => {
        console.log(level.current, curLevel) // outputs (2,3)
        setIsCurrentLevel(level.current !== curLevel);       
    },[level.current, curLevel]);