javascript - 提交按钮重新加载页面

标签 javascript html css reactjs button

我正在处理登录表单,并且出现了一种奇怪的行为,每当我单击“登录”按钮时,页面都会重新加载,而无需通过“submitHandler”功能登录我的电子邮件和密码。 下面是表单的代码(我删除了很多额外的 CSS 格式和 div)。 这是表单的屏幕截图:

loginForm

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

有人知道为什么点击登录按钮后页面会重新加载吗?

最佳答案

问题

该按钮是 type="submit" 但表单没有 onSubmit 处理程序,因此采取默认表单操作,即提交表单并重新加载页面.

解决方案

onSubmit 移至 form 元素,以便回调可以防止发生默认表单操作。

<form onSubmit={submitHandler}>              
  <button type="submit">
    Login
  </button>              
</form>

关于javascript - 提交按钮重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69218073/

相关文章:

javascript - MongoDB,条件更新或更新

jQuery - CSS 属性名称

html - 横向和纵向的CSS格式dl标签

javascript - 使用 jQuery 使 li 中的图像随着悬停而消失

javascript - 在页面加载时执行函数,ANGULAR 2

javascript - 鼠标悬停时更新第二个图表

javascript - 如何使用 document.write 将变量值附加到元素

javascript - CSS/JS 导航菜单中的箭头(例如 playframework.org)

javascript - 在 JavaScript 中重新启用鼠标滚动

html - 文本修饰问题