【发布时间】:2021-11-12 00:23:00
【问题描述】:
我正在处理一个登录表单,我遇到了一个奇怪的行为,即每当我单击“登录”按钮时,页面只是重新加载,而无需通过“提交处理程序”功能登录我的电子邮件和密码。 下面是表单的代码(我删除了很多额外的 CSS 格式和 div)。 这是表格的截图:
import React from 'react'
import { useState, useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { login } from "../../../actions/userActions";
import { Form, Button, Row, Col } from "react-bootstrap";
function LoginForm ({history}) {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const submitHandler = (e) => {
e.preventDefault();
console.log(email, password)
// dispatch(login(email, password));
};
return (
<form>
<button onSubmit={submitHandler} type="submit">
Login
</button>
</form>
)
}
export default LoginForm
有人知道为什么点击登录按钮后页面会重新加载吗?
【问题讨论】:
-
您的处理程序必须在表单上而不是在按钮上
-
您甚至不一定需要
form元素或type="submit" which means you don't needpreventDefault`。input和button元素可以与form一起存在。
标签: javascript html css reactjs button