Фильтр React JS

#reactjs #api

Вопрос:

Я пытаюсь показать значения по типам, но он возвращает только одно значение

 filerBuilding(value) {  this.state.buildings.map((item) =gt; {  if (value.target.value === item.buildingType) {  this.setState({  buildings: this.state.buildings.splice(this.state.buildings.length),  });  let data = [];  data.push(item);  this.setState({ buildings: data });  }  else{    }  });  }  

Комментарии:

1. Вы создаете data массив внутри map , поэтому каждый раз, когда вы находите значение, вы перезаписываете его новым значением; попробуйте объявить его перед map и передать в состояние в конце map функции

2. @Джакомо и второй вопрос. Когда я выбираю другой вариант, страница все еще показывает мне значения из первого варианта, как я могу это исправить?

Ответ №1:

Комментарий @Giacomo касается этой проблемы. Чтобы перевести его в реализацию, используя filter :

 function filterBuilding(value) {  const filtered = this.state.buildings.filter(  item =gt; value.target.value === item.buildingType  );   this.setState({ buildings: filtered }); }