Сейчас у меня небольшая проблема с компонентом Material-UI Chips.У меня есть выбор со списком пользователей.Когда вы выбираете пользователя, прямо под формой появляется фишка с его номером.Все работает просто отлично, но чипы перезаписываются, а не добавляются новые.Вот мой код:
import React from 'react';
import Chip from '@material-ui/core/Chip';
export default function Test(){
const [chipData, setChipData] = React.useState([]);
const userArray = [
{key: 1, label: name1},
{kel: 2, label: name2}
];
const [userValue, setUserValue] = React.useState('');
// This come from the select form onChange
const handleSelect = (e) => {
setUserValue(e.target.value);
setChipData([...chipData, {key: e.target.value, label: e.target.value}]);
}
const handleDelete = chipToDelete => () => {
setChipData(chips => chips.filter(chips => chips.key !== chipToDelete.key));
}
return(
<div>
<TextField
select
value={userValue}
onChange={e => handleSelect(e)}
>
{userArray.map(option => (
<MenuItem key={option.key} value={option.label}>
{option.label}
</MenuItem>
))}
</TextField>
{chipData.map(data => {
return(
<Chip
key={data.key}
label={data.label}
onDelete={handleDelete(data)}
/>
);
})}
</div>
);
}
Я пробовал что-то вроде chipData.push({data...})
, которое прекрасно работает, но не позволяет мне добавлять другие элементы, если я удаляю любой из них.С помощью приведенного выше кода микросхемы просто перезаписывают предыдущий и не добавляются в массив.