繁体   English   中英

Firebase auth React dom router navigate 如果没有报错

[英]Firebase auth React dom router navigate if there is no error

我有一个注册 function,它将在 firebase auth 中注册一个用户。 我的问题是,即使注册出现错误,用户也会被导航到主页。 如果在注册期间没有错误,我如何修复我的 function 以编程方式导航用户

 const handleSubmit = (event) => {
    event.preventDefault();

    const data = new FormData(event.currentTarget);

    try {
      //signup is a prop function
      signup(data.get("email"), data.get("password"));
    } catch (error) {
      setError(error.message);
      return;
    }

    navigate("/" + location.search);
  };

在没有其他上下文的情况下,我有信心猜测这很可能是因为您的signupasync的 function。如果没有await on signupsignup只会在handleSubmit完成后开始。 为了await它,您必须将handleSubmit声明为async箭头 function。

注意我添加的asyncawait

const handleSubmit = async (event) => {
  event.preventDefault();

  const data = new FormData(event.currentTarget);

  try {
    await signup(data.get("email"), data.get("password"));
  } catch (error) {
    setError(error.message);
    return;
  }

  navigate("/" + location.search);
};

为了更好地理解这个概念,请确保您阅读了有关异步函数JS 事件循环的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM