reactjs React应用程序在输入输入时继续提交

k97glaaz  于 2023-03-22  发布在  React
关注(0)|答案(1)|浏览(135)

React Frontend

const InputsSignUp = () => {
  const email = "";
  const password= ""

  const [state, setState] = React.useState({
    email: ""
  })

  function handleChange(evt) {
    evt.preventDefault();

      setState({ firstName: evt.target.value });
    }
    
    return (
        <>
              <Container fluid="sm" style={{backgroundColor: 'white'}}>
      <h1>{email}</h1>
      <h1>{password}</h1>
    <Form>
      <Form.Group className="mb-3" controlId="formBasicUsername">
        <Form.Label>Email address</Form.Label>
        <Form.Control type="text" placeholder="Enter email" value={state.email} onChange={handleChange} />
        <Form.Text className="text-muted">
          We'll never share your email with anyone else.
        </Form.Text>
      </Form.Group>

        <Button variant="primary" type="submit" onSubmit={console.log(state.email)}>
        Submit
      </Button>
      </Form>
      </Container>
        </>
    )
}

export default InputsSignUp;

下面是我的表单的代码
每次我在字段中输入文本时,它都会继续提交请求,在本例中是记录输入的数据
如何更改代码,使其仅在我按下“提交”按钮时提交请求

5hcedyr0

5hcedyr01#

您实际上并没有提交表单。您的Form.Control实现是正确的。问题只是Button处理程序。如下所示:

<Button variant="primary" type="submit" onSubmit={console.log(state.email)}>

和这个是一样的

const result = console.log(state.email);

// ...

<Button variant="primary" type="submit" onSubmit={result}>

这只是一个基本的JavaScript --应该可以让问题变得很清楚。每次组件呈现时都运行console.log,并将undefined作为提交处理程序传递。
而是传递一个函数作为提交处理程序,然后在调用时运行console.log本身。

<Button variant="primary" type="submit" onSubmit={() => console.log(state.email)}>

相关问题