Это потому, что ваше поле выпадающего списка не обернуто redux-form
<Field />
компонентом.
Вам необходимо создать пользовательский раскрывающийся компонент (назовем его <Dropdown />
), а затем передать его в поле следующим образом:
<Field name='matricule' component={Dropdown} />
Имейте в виду, что в вашем <Dropdown />
компоненте вы должны адаптировать реквизиты, переданные на <Field />
, с помощью ваших собственных реквизитов Dropdown. Например, <Field />
передаст input
проп, который включает в себя onChange
, onBlur
и другие обработчики, они также должны быть переданы в ваш пользовательский выпадающий список.
Вот базовый пример того, как создать такой пользовательский выпадающий компонент:
const Dropdown = ({ input, label, options }) => (
<div>
<label htmlFor={label}>{label}</label>
<select {...input}>
<option>Select</option>
{ options.map( o => (
<option key={o.id} value={o.id}>{o.label}</option>
)
)}
</select>
</div>
)
Использование
const options = [
{ id: 1, label: 'Example label 1' },
{ id: 2, label: 'Example label 2' }
]
<Field name='marticule' component={Dropdown} options={options} />
Для расширенных вариантов использования, , пожалуйста, обратитесь к документации .
Кроме того, вы используете reactstrap
и , вот обсуждение о том, как создать такой пользовательский выпадающий компонент, который адаптирован с redux-form
.