【发布时间】:2022-08-02 16:55:40
【问题描述】:
有没有办法为React Final Form 中的单个字段添加多个验证?就像是:
<Field
name=\'email\'
label=\'email\'
validate={[emailValidator, emptyValidator}]
/>
redux-form 中有类似的验证类型。有没有办法在React Final Form 中进行这种类型的验证?
有没有办法为React Final Form 中的单个字段添加多个验证?就像是:
<Field
name=\'email\'
label=\'email\'
validate={[emailValidator, emptyValidator}]
/>
redux-form 中有类似的验证类型。有没有办法在React Final Form 中进行这种类型的验证?
您可以使用帮助函数为 Field 提供多个验证器,例如。 composeValidators
const required = value => (value ? undefined : 'Required');
const mustBeNumber = value => (isNaN(value) ? 'Must be a number' : undefined);
const minValue = min => value =>
isNaN(value) || value >= min ? undefined : `Should be greater than ${min}`;
const composeValidators = (...validators) => value =>
validators.reduce((error, validator) => error || validator(value), undefined);
并像这样使用它:
<Field
name="age"
validate={composeValidators(required, mustBeNumber, minValue(18))}
/>
在此处查看官方示例Field-Level Validation
【讨论】: