const [firebaseUser, setfirebaseUser] = useState({});
const onSignUp = async (data: FormData) => {
setDisableButton(true);
try {
const userCredential = await createUserWithEmailAndPassword(auth, data.email, data.password);
const user = userCredential.user;
console.log({ ...user });
setFireBaseError(null);
setfirebaseUser({ ...user });
console.log("Firebase user:", firebaseUser); // empty object
if (user) {
await sendEmailVerification(user);
}
navigate("/verify-email");
} catch (err: any) {
setDisableButton(false);
if (err.message.includes("email-already-in-use")) {
setFireBaseError("Email already in use");
} else if (err.message.includes("weak-password")) {
setFireBaseError("Password is too weak. Please use at least 6 characters");
} else if (err.message.includes("invalid-email")) {
setFireBaseError("Please enter a valid email address");
}
}
};
我正在尝试使用函数 setfirebaseUser 这样我就可以将此 useState 传递到另一个页面。当我使用该函数并使用扩展运算符来 setfirebaseUser 并在下一行打印出 firebaseUser 时,它永远不会工作,只显示一个空对象。但是,当我使用 setfirebaseUser 时在用户上使用展开运算符时,Firebase 用户的整个对象会显示其详细信息。
您所指的问题已在本文档
中讨论过