#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 }); }