【发布时间】:2021-04-17 23:57:49
【问题描述】:
我想提交我的登录表单,但我需要按两次才能完成登录表单,我不知道会发生什么。 我正在使用样式化的组件,这个按钮表单是一个 input 标签 我也在使用 firebase-hooks 我只想点击一次提交
这是我的代码
export default function LoginForm() {
// submit
const handleLogin = (e) => {
e.preventDefault();
signInWithEmailAndPassword(email, password);
if (user) {
setTimeout(() => {
history.push(`${ROUTES.HOME}`);
}, 1000);
}
};
if (loading) {
return <Loading />;
}
return (
<FormContainer onSubmit={(e) => handleLogin(e)}>
<LogoContainer>
<img
src="https://firebasestorage.googleapis.com/v0/b/auth-c068d.appspot.com/o/instagram%2Finstagram-signup.png?alt=media&token=cdafffb1-3034-474d-be96-d507b5e416c6"
alt="instagram-logo"
/>
</LogoContainer>
<input
id="email"
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Email"
required
/>
<input
id="password"
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Password"
required
/>
<ButtonForm type="submit" name="btn-login" value="Log In" />
<p>
Don't have an account? <Link to="/signup">Sign Up</Link>
</p>
{error && <Error errorMessage={error.message} />}
</FormContainer>
);
}
【问题讨论】:
-
如果您将 console.log 放在
handleLogin的顶部,它会在第一次提交后打印吗?如果是这样,它可能与 preventDefault 之后该函数中的代码有关
标签: javascript reactjs firebase forms