【问题标题】:Multiple validation to same field in react final form以反应最终形式对同一字段进行多次验证
【发布时间】:2022-08-02 16:55:40
【问题描述】:

有没有办法为React Final Form 中的单个字段添加多个验证?就像是:

<Field
  name=\'email\'
  label=\'email\'
  validate={[emailValidator, emptyValidator}]
/>

redux-form 中有类似的验证类型。有没有办法在React Final Form 中进行这种类型的验证?

    标签: reactjs react-final-form


    【解决方案1】:

    您可以使用帮助函数为 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2018-12-28
      • 1970-01-01
      • 2023-01-28
      • 2022-11-03
      相关资源
      最近更新 更多