我有两个表单,其中第二个表单中字段的验证是基于第一个表单中字段的值。在自顶向下填写表单时,这可以像预期的那样工作。但是,当我更改第一个表单中的值时,验证中没有更新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']
})