在反应挂钩生命周期中,当我使用另一个帐户登录时,状态不会更新。如果删除依赖项数组,错误将耗尽内存,超出更新的数量
const [admin, setAdmin] = useState({});
useEffect(() => {
const jwt = localStorage.getItem("token");
if (jwt) {
const user = jwtDecode(jwt);
setAdmin(user);
}
}, [admin])
我只希望如果用户使用另一个帐户登录,则状态应立即更新。
答案 0 :(得分:0)
这是因为,您正在useEffects
中设置状态,并因此一次又一次地触发它...
只要state
发生更改,并且useEffects
都会在相同状态作为依赖项传递时触发。那就是你所做的。
要解决此问题,请用另一种方法移动setAdmin(user);
或从依赖项中删除[admin]
。