遵循此示例:
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)”不会抛出错误。
答案 0 :(得分:1)
是的,基本上你需要在render()
方法之外创建验证函数,因为每次渲染表单时都会创建一个新函数。
文档说明:Note: if the validate prop changes the field will be re-registered.
因此,您可以在控制台中看到内联函数会使字段再次显示UNREGISTER_FIELD
,然后再显示REGISTER_FIELD
。