我不知道为什么当我调用 useState 依赖项时 useEffect 没有重新运行,我试图将状态作为 useEffect 依赖项传递,但它造成了无限循环。我想在调用 setState 时运行 useEffect。
有什么办法吗?
useEffect(() => {
console.log('useEffect initial state ')
fetch(API)
.then(res => res.json())
.then(response => {
setState(response.data);
})
}, [setState]);
答案 0 :(得分:1)
导致无限循环的原因是您正在更改效果内部的状态,然后重新触发它,从而符合预期。
这是一个设计问题,您需要将效果设置得更精细,只更改它需要的状态,并且只对应该触发刷新的状态做出反应。