redux-form字段验证级别不接受验证内联中的函数

时间:2017-10-17 08:36:27

标签: reactjs redux-form

遵循此示例:

https://redux-form.com/7.1.1/examples/fieldlevelvalidation/

验证器是:

const maxLength = max => value =>
  value && value.length > max ? `Must be ${max} characters or less` : undefined
const maxLength15 = maxLength(15)

表示字段用户名:

 <Field
    name="username"
    type="text"
    component={renderField}
    label="Username"
    validate={[required, maxLength15, minLength2]}
    warn={alphaNumeric}
  />

如果我更改了验证,maxLength(15)的maxLength15不起作用:

validate = {[required,maxLength(15),, minLength2]}

为什么我需要为验证工作创建另一个函数“maxLength15”,因为“maxLength(15)”不会抛出错误。

1 个答案:

答案 0 :(得分:1)

是的,基本上你需要在render()方法之外创建验证函数,因为每次渲染表单时都会创建一个新函数。

文档说明:Note: if the validate prop changes the field will be re-registered.

因此,您可以在控制台中看到内联函数会使字段再次显示UNREGISTER_FIELD,然后再显示REGISTER_FIELD