Redux表单 - 如何验证异步模糊字段数组?

时间:2017-07-17 08:42:05

标签: validation redux-form

我有一个像这样的FieldArray:

renderLanguages = fields => (
    <div>
      {fields.map(fieldName => <Field name={fieldName + '.iso'} component="input" type="text" />
    </div>
)

<FieldArray name="languages" component={renderLanguages} />

我想以异步方式验证它:

const asyncValidate = values => {
  console.log(values);
}

export default reduxForm({
  form: 'languagesForm',
  asyncValidate,
  asyncBlurFields: ['languages']
})(LanguagesForm)

我的asyncValidate永远不会被调用。我想知道是否必须以其他方式指定asyncBlur字段。或者,如果redux-form不提供字段数组的异步验证。

1 个答案:

答案 0 :(得分:0)

要让Redux-form FormArray使用asyncValidate,需要将字段作为languages[].<nameOfTheFieldOfChildComponet>传递,而不是languages。 我认为它的设计也很普遍,我们不会对任何参数的变化进行异步验证,而是对特定参数进行验证。

以下是工作示例: - https://codesandbox.io/s/mq8zz58mrj

const asyncValidate = values => {
  console.log(values);
}

export default reduxForm({
  form: 'languagesForm',
  asyncValidate,
  asyncBlurFields: ['languages[].name']
})(LanguagesForm)