Почему мой фильтр не работает должным образом? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть набор Gym Classes , который извлекается из базы данных, это журнал того:

enter image description here

Когда его вытягивают, его помещают в два разных массива:

gymClasses: [],
filteredClasses: [],

Затем, когда пользователь щелкает по одному из раскрывающихся списков, он получает значение выбранного раскрывающегося списка с помощью this.filterClasses(event.target.value);

* 1015.* Затем функция, которая выполняет это:
filterClasses(value) {
  const newFilteredClasses = this.state.gymClasses.filter( (value) => {
    return this.state.gymClasses.type === value;
  });

  this.setState({filterClasses: newFilteredClasses});
  console.log('values ', this.state.filteredClasses);
}

Когда я открываю последний файл console.log, который должен показать мне filteredClasses, он показывает мне те же классы, что и те, которые не были отфильтрованы,

Это результат последнего

console.log('values ', this.state.filteredClasses);

enter image description here

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 14 ноября 2018

В обратном вызове фильтра вы проверяете тип

this.state.gymClasses.type === value

В идеале вы должны использовать обратный вызов param вместо this.state.gymClasses.type

Попробуйте это

filterClasses(selectedValue) {
  const newFilteredClasses = this.state.gymClasses.filter( (value) => {
    return value.type === selectedValue;
  });

  this.setState({filterClasses: newFilteredClasses});
}
...