为什么 useEffect 没有以 setState 作为依赖项重新运行?

时间:2021-04-30 16:46:24

标签: react-hooks use-effect

我不知道为什么当我调用 useState 依赖项时 useEffect 没有重新运行,我试图将状态作为 useEffect 依赖项传递,但它造成了无限循环。我想在调用 setState 时运行 useEffect。

有什么办法吗?

    useEffect(() => {
    console.log('useEffect initial state ')
    fetch(API)
        .then(res => res.json())
        .then(response => {
          setState(response.data);
        })
    
      }, [setState]);


1 个答案:

答案 0 :(得分:1)

导致无限循环的原因是您正在更改效果内部的状态,然后重新触发它,从而符合预期。

这是一个设计问题,您需要将效果设置得更精细,只更改它需要的状态,并且只对应该触发刷新的状态做出反应。