Redux表单状态输入

时间:2019-12-11 16:23:39

标签: reactjs react-hooks redux-form

表单渲染:

return (
        <form onSubmit={handleSubmit}>
        <Field
          name="login"
          component={RenderTextField}
          label="Login"
        />     
        <Field
          name="password"
          component={RenderTextField}
          label="Password"
        />  
        </form>
)

验证:

const RenderTextField = ({
  label,
  input,
  meta: { touched, invalid, error },
  ...custom
},props) => {
  const classes = useStyles();
  return (
    <TextField
    label={label}
    placeholder={label}
    error={touched && invalid}
    helperText={touched && error}

    {...input}
    {...custom}
  />
  );
}
const validate = values => {
  console.log(values);
  const errors = {}
  const requiredFields = [
    'login',
    'password',
  ]
  requiredFields.forEach(field => {
    if (!values[field]) {
      errors[field] = 'Required'
    }
  })
  if (
    values.email &&
    !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.email)
  ) {
    errors.email = 'Invalid email address'
  }
  return errors
}

我不知道错误在哪里,它只在我的验证中输入了一次,我无法在文本字段中键入任何内容,我没有正确导出我的表单,我从Redux表单文档中获得的验证我的RenderTextField也可以帮帮我吗?

即使没有点击我首先验证并返回我的文本字段,我的验证仍会正常进行:

  

错误:

     

{登录名:“必填”,密码:“必填”}

但是我不能在文本字段中写。

我发现问题是:

{...input}
{...custom}

0 个答案:

没有答案