Уровень проверки поля в форме избыточности не принимает функции в действующей валидации

Следуя этому примеру:

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}
  />

если я изменяю в валидации, maxLength15 для maxLength(15) не работает:

validate = {[обязательно, maxLength(15),, minLength2 ]}

почему мне нужно создать другую функцию "maxLength15" для проверки работоспособности, потому что "maxLength(15)" не выдает ошибки.

1 ответ

Да, в основном вам нужно создать функцию проверки вне вашего render() метод, потому что каждый раз при визуализации формы будет создана новая функция.

Документы утверждают: Note: if the validate prop changes the field will be re-registered.

Таким образом, вы можете увидеть в консоли, что встроенные функции вызывают поле UNREGISTER_FIELD а потом REGISTER_FIELD снова.

Другие вопросы по тегам