Вы можете вручную фильтровать данные, используя метод Array.filter
, для различных условий и приоритетов.
Вы можете обратиться к этой песочнице для базовой реализации.
Это базовая реализация, и вам нужно внести в нее изменения в соответствии с вашими данными
базовая функциональность, которую я написал для handleClick
метода:
handleClick(e) {
const regex = new RegExp(this.state.searchkey, "i");
let filteredData = data.filter(item => regex.test(item.name));
if (this.state.dept) {
filteredData = filteredData.filter(item => item.dept === this.state.dept);
}
if (this.state.type) {
filteredData = filteredData.filter(item => item.type === this.state.type);
}
this.setState({ filteredData });
}
PS: это не такидеальная логика может быть оптимизирована