useEffect中设置定时器无限循环问题
react吧
全部回复
仅看楼主
level 1
2catch 楼主
const [data, setData] = useState(null);
useEffect(() => {
const timer = setInterval(() => {
let data = 1
setData(data);
}, 0);
return ()=>{
clearInterval(timer);
}
}, [data]);
我如果在uesEffect里加入定时器,打印会无限循环,按道理我第二个参数是恒定的,只会调用一次uesEffect, 请问怎么让他只调用一次?
2023年04月14日 16点04分 1
level 1
useEffect的第二参数为空数组就行,你这样应该是只要data更新就重新调用函数,就会去执行useEffect,useEffect的回调又会执行setData,setData又会调用函数导致无限递归,你这个反而有点像手动interval了,不知道是不是这样的
2023年04月16日 04点04分 2
谢谢
2023年04月16日 04点04分
level 8
数组里是要监听变化的数据
2023年04月23日 11点04分 3
1