Имеется массив:
![65e17fefef4d8508081301.png](https://habrastorage.org/webt/65/e1/7f/65e17fefef4d8508081301.png)
Пытаюсь сделать, чтобы через чекбоксы можно было выбирать и Languages и Level:
![65e1801ece47f465015058.png](https://habrastorage.org/webt/65/e1/80/65e1801ece47f465015058.png)
Обновление массива выбранных значений и фильтрация:
const [selectedOptions, setSelectedOptions] = useState([]);
const handleCheckboxChange = (e) => {
const value = e.target.value;
setSelectedOptions((prevSelected) => {
if (prevSelected.includes(value)) {
return prevSelected.filter((option) => option !== value);
} else {
return [...prevSelected, value];
}
});
};
const filteredData = sitterStore.filter((item) => {
if (selectedOptions.length === 0) {
return true;
} else {
return selectedOptions.includes(item.level_name);
}
});
Создание чекбоксов:
{sitterStore.map((item, index) =>
<>
<label className='checkbox-label'>
<input
type="checkbox"
value={item.lang_name}
checked={selectedOptions.includes('lang_name')}
data-key={`lang_name`}
onChange={(e) => handleCheckboxChange(e)}
className='checkbox-input'/>
{item.lang_name}
</label>
</>
)}
Вот тут:
return selectedOptions.includes(item.level_name);
если проверяю одно свойство, level или language, всё ок, а если два сразу, что делать?