有没有办法在Redux Forms中验证FormSection?

我在FormSection中有两个复选框,我希望确保至少选中了一个。

所需的功能已可用于其他Field组件,但无法正常工作,是否有一些解决方法?

        <FormSection name="fieldName" validate={required}>
         <div className="form-body">
          <Field
            label="one"
            name="one"
            id="one"
            component={CheckBox}
          />
          <Field
            label="two"
            name="two"
            id="two"
            component={CheckBox}
          />
        </div>
       </FormSection>

最佳答案

解决方法是,您可以使用表单级验证:https://redux-form.com/7.0.4/examples/syncvalidation/

在您的验证功能中,字段名称将以FormSection的名称为前缀。因此,您的验证功能将类似于:

function validate(values){
    const {fieldNameone, fieldNametwo} = values;
    let errors = {};

    if (fieldNameone === '' && fieldNametwo === '') {
        errors.fieldNameone = 'Either field one or two must be filled in';
        errors.fieldNametwo = errors.fieldNameone;
    }

    return errors;
}


我没有测试过,所以它可能并不完美。

您可以在FormSection容器中定义此函数以提高模块化,如果有帮助的话。

07-26 01:29