我尝试使用useSession获取数据,并将这些数据存储在我的状态中,但当我使用this获取数据时,它返回空对象,因为数据仍处于加载状态。
有没有什么方法可以让我只在状态为未加载后才获取数据,直到那时才阻止页面?
const { data: session, status } = useSession();
useEffect(() => {
const { data } = getCookieData(session);
if (data) setUser(() => data.user);
}, []);
1条答案
按热度按时间0pizxfdo1#
评论变成了回答:
useSession
会在状态变更后变更状态。如果您希望useEffect中的程式码在状态变更后执行,您可能会想要将该状态放在括号内,因此此程式码:会变成这样
一般来说,每当你需要触发某个函数时,每当一个特定的道具或状态发生变化时,你应该把这些变量放在useEffect()中
有关useEffect和生命周期的更多信息,请参阅以下文档:https://reactjs.org/docs/hooks-effect.html