基于其他形式的字段的redux表单验证



我有两个表单,其中第二个表单中字段的验证是基于第一个表单中字段的值。在自顶向下填写表单时,这可以像预期的那样工作。但是,当我更改第一个表单中的值时,验证中没有更新values对象。

我的validate-function看起来像这样:

const validate = values => {
  const errors = {}
  if (!values.username) {
    errors.username = 'Required'
  } else if (values.username.length < values.previous_field.length) {
    errors.username = 'Your name can't be shorter than the previous field';
  }
  return errors;
}

当我在填写有效的用户名后将前一个字段更改为短值时,username-field永远不会失效。

我决定重命名这两个表单,这样它们就会有相同的名称。通过这种方式,值确实得到更新,并且您可以按照我喜欢的方式使用验证。

两个表单现在都命名为userdata,第一个表单包含所有验证逻辑:

@reduxForm({
  form: 'userdata',
  validate,
  asyncValidate,
  asyncBlurFields: ['car_licenceplate', 'user_zipcode']
})

最新更新