Redux Forms sometimes ends up with register/unregister infinite loop
Don't do this:
validate={[isRequired, maxLength(5)]}
every time the form is rendered maxLength(5)
will construct a new function, which will cause field to rerender (because this.props.validate !== nextProps.validate
)
You can use specifically defined instances of parameterized validation rules:
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]}
/>