Firebase auth React dom router navigate if there are no error
Firebase auth React dom router navigate if there is no error
我有一个注册功能,可以在 firebase auth 中注册用户。我的问题是,即使注册出现错误,用户也会被导航到主页。如果在注册期间没有错误,我如何修复我的功能以编程方式导航用户
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);
};
在没有其他上下文的情况下,我有信心猜测这很可能是因为您的 signup
是一个 async
函数。 signup
上没有 await
,signup
将仅在 handleSubmit
完成后开始。为了 await
它,你必须声明 handleSubmit
是一个 async
箭头函数。
注意我添加的async
和await
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);
};
为了更好地理解这个概念,请务必阅读有关 Async Functions and the JS Event Loop
的更多信息
我有一个注册功能,可以在 firebase auth 中注册用户。我的问题是,即使注册出现错误,用户也会被导航到主页。如果在注册期间没有错误,我如何修复我的功能以编程方式导航用户
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);
};
在没有其他上下文的情况下,我有信心猜测这很可能是因为您的 signup
是一个 async
函数。 signup
上没有 await
,signup
将仅在 handleSubmit
完成后开始。为了 await
它,你必须声明 handleSubmit
是一个 async
箭头函数。
注意我添加的async
和await
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);
};
为了更好地理解这个概念,请务必阅读有关 Async Functions and the JS Event Loop
的更多信息