在react useEffect生命周期中,我得到了无限的结果

时间:2020-05-29 13:49:55

标签: javascript reactjs

在反应挂钩生命周期中,当我使用另一个帐户登录时,状态不会更新。如果删除依赖项数组,错误将耗尽内存,超出更新的数量

const [admin, setAdmin] = useState({});
  
useEffect(() => {
    const jwt = localStorage.getItem("token");
    if (jwt) {
      const user = jwtDecode(jwt);
      setAdmin(user);
    }
}, [admin])

我只希望如果用户使用另一个帐户登录,则状态应立即更新。

1 个答案:

答案 0 :(得分:0)

这是因为,您正在useEffects中设置状态,并因此一次又一次地触发它...

只要state发生更改,并且useEffects都会在相同状态作为依赖项传递时触发。那就是你所做的。

要解决此问题,请用另一种方法移动setAdmin(user);或从依赖项中删除[admin]