autoFocus
не попадает в группу input
. Нам нужно вручную обработать это.
Единственные ключи, которые попадают в input
:
export type InputProps = {
checked?: boolean,
name: string,
onBlur: { (eventOrValue: Event | any): void },
onChange: { (eventOrValue: Event | any): void },
onDrop: { (event: Event): void },
onDragStart: { (event: Event): void },
onFocus: { (event: Event): void },
value: any
}
Как видно из исходного кода - https://github.com/erikras/redux-form/blob/master/src/FieldProps.types.js.flow#L29-L38
Также видно в документах - https://redux -form.com / 7.3.0 / docs / api / field.md / # input-props
Таким образом, мы изменили бы наш renderField
для обработки всех других реквизитов и передали бы его input
следующим образом:
const renderField = ({ input, label, meta: { touched, error, warning }, custom, ...inputProps }) => (
<div>
<div className ="group">
<input className="text" {...input} {...inputProps} />
<label>{label}</label>
<span className="highlight"></span>
<span className="bar"></span>
{touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}
</div>
</div>
)
Обратите внимание на изменение, теперь оно <input className="text" {...input} {...inputProps} />
.
Я добавил custom
к деструктору, чтобы он был удален, поскольку это то, что в FieldProps
- https://github.com/erikras/redux-form/blob/master/src/FieldProps.types.js.flow#L40-L63