我有一个标准的方法来设置用户状态为currentuser
,它是从onAuthStateChanged
返回的。我想要一个useEffect钩子,当用户信息更新时调用它。我不知道怎么做。
我目前的解决方案是手动触发一个函数,将checkingStatus
设置为true
,以便下面的useEffect再次运行。
useEffect(() => {
console.log("change")
const unsubscribe = onAuthStateChanged(auth, (currentuser) => {
setUser(currentuser);
setCheckingStatus(false);
});
return () => {
unsubscribe();
};
}, [aucheckingStatus]);
是否有一种方法可以侦听对用户所做的任何更改,然后触发一个useEffect来更新用户状态?
1条答案
按热度按时间v1l68za41#
虽然
auth.currentUser
实际上包含最新的用户数据,但出于我无法理解的原因,您实际上无法使用auth.currentUser
触发useEffect
,因为ReactJS无法识别更改,而且将用户状态设置为auth.currentUser
也不起作用,但出于某种原因,如果您传播auth.currentUser
,React将正确更新状态。因此,我的解决方案是在完成配置文件更新或其他与用户数据相关的操作后传播
auth.currentUser
。