При добавлении нового элемента через useState, элемент добавляется 2 раза. JS, React
мне нужно при нажатии на элемент, добавлять строку в массив, Однако вместо одного раза, строка добавляется 2 раза. Далее, при повторном нажатии, мне нужно удалить этот элемент из массива, но если я добавляю условие, то на выходе массив пустой, предполагаю что ошибка связанна с первой проблемой
const [filter, setFilter] = useState(['fsdsf', 'fsfsf']);
function handlePushItem() {
setFilter([...filter, itemEn ]);
// if (filter.includes(itemEn)) {
// setFilter(filter.filter((obj) => obj !== itemEn));
// } else {
// setFilter(filter.concat(itemEn));
// }
}
console.log(filter) // ['fsdsf', 'fsfsf', itemEn] // ['fsdsf', 'fsfsf', itemEn, itemEn]
return (
<li className="catalog-filter__item catalog-filter__item--second-level" onClick={handlePushItem}>
<div className="custom-toggle custom-toggle--checkbox">
<input type="checkbox" value={itemRu} id={itemRu} name="catalog-second-level" />
<label className="custom-toggle__label" htmlFor={itemRu}>{itemRu}</label>
</div>
</li>
);
}
Я только учусь и буду очень благодарна за вашу помощь
Источник: Stack Overflow на русском