即使所有内容都受到控制,也会得到不受控制的输入错误

问题描述 投票:0回答:1

我需要您的帮助,我正在尝试使用react-strap中的表单,由于某种原因,我收到此错误:

警告:组件正在将密码类型的受控输入更改为不受控制。输入元素不应从受控状态切换到非受控状态(反之亦然)。确定在组件的使用寿命期间使用受控还是不受控制的输入元素

这是我的代码。一切都受控,但我仍然会收到错误,有人可以发现我的错误吗?

const LoginForm = () => {
  const [formData, setFormData] = useState({
    email: " ",
    password: " "
  });
  const onChange = e => {
    setFormData({
      [e.target.name]: e.target.value
    });
  };
  const onSubmit = e => {
    e.preventDefault();
    console.log("email password are", formData.email, formData.password);
    loginUser(formData.email, formData.password);
  };
  return (
    <Form onSubmit={onSubmit}>
      <FormGroup>
        <h1>Login</h1>
      </FormGroup>
      <FormGroup>
        <Label for="Email">Email</Label>
        <Input
          type="email"
          name="email"
          id="Email"
          placeholder="[email protected]"
          onChange={onChange}
          value={formData.email}
        />
      </FormGroup>
      <FormGroup>
        <Label for="Password">Password</Label>
        <Input
          type="password"
          name="password"
          id="Password"
          placeholder="password"
          onChange={onChange}
          value={formData.password}
        />
      </FormGroup>
      <Button>Submit</Button>
    </Form>
  );
};
reactjs forms state reactstrap
1个回答
0
投票

确定,发现错误,我没有传播最后的答案,因此通过输入密码覆盖了我的电子邮件,更改时应该是这样:

const onChange = e => {
    setFormData({ ...formData, [e.target.name]: e.target.value });
  };
© www.soinside.com 2019 - 2024. All rights reserved.