Я связываюсь, чтобы собрать несколько предметов. моя структура данных бэкэнда представляет собой массив таких объектов
{
"selectedItems": [
{"_id" : ""}
]
}
проблема с реакцией выбора заключается в том, что когда я выбираю один или несколько элементов, структура не совпадает с моим маршрутом бэкэнда, она выглядит так
{
"selectedItems": [
{"value" : "", label : ""}
]
}
Я работаю с Formik, чтобы управлять формой, и вы также можете увидеть результат в этой песочнице в журнале консоли
const ItemSelected = () => {
const items = [
{
_id : "123", name : "john", desc : 'eb'
},
{
_id : "456", name : "doe", desc : 'ec'
},
{
_id : "789", name : "seal", desc : 'ef'
}
]
const itemList = (options) => {
return (
options &&
options.map(option => {
return {
value: option._id,
label: option.name
};
})
);
}
return(
<div>
<Formik
initialValues={{
selectedItems : []
}}
onSubmit={values => {
console.log(values)
}}
>
{({
values,
handleSubmit,
setFieldValue
}) => (
<Form onSubmit={handleSubmit}>
<div className="row">
<div className="col">
<Select
isMulti
name={`selectedItems`}
value={values.selectedItems}
onChange={e=>setFieldValue(`selectedItems`, e)}
options={itemList(items)}
className="basic-multi-select"
classNamePrefix="select"
/>
</div>
<div className="col">
<button type="submit">
submit
</button>
</div>
</div>
</Form>
)}
</Formik>
</div>
)
}