有没有办法在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容器中定义此函数以提高模块化,如果有帮助的话。