我有一个反应组件,我们 isAlive作为一个道具传递给它,它具有false来自父组件的初始值,我不确定setInterval这个console.log人是否还活着。当道具更新时,最新值不会反映在运行时设置的间隔中,它始终保留原始值,即false.const printUserStatus = ({isAlive}) =>{ setInterval(() => { if(isAlive === false){ console.log("the user is Dead"); } else if(isAlive === true){ console.log("the user is Alive"); } },1000);}更新:感谢mahdi方法,通过以下方式解决了它 -const printUserStatus = ({isAlive}) =>{ const isAliveRef = useRef(isAlive); isAliveRef.current = isAlive; setInterval(() => { if(isAliveRef.current === false){ console.log("the user is Dead"); } else if(isAliveRef.current === true){ console.log("the user is Alive"); } },1000);}
2 回答

慕桂英3389331
TA贡献2036条经验 获得超8个赞

侃侃无极
TA贡献2051条经验 获得超10个赞
添加回答
举报
0/150
提交
取消