useState 未更新对象类型

问题描述 投票:0回答:1
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 用户的整个对象会显示其详细信息。

javascript firebase react-hooks registration
1个回答
0
投票

您所指的问题已在本文档

中讨论过
© www.soinside.com 2019 - 2024. All rights reserved.