@ART4

Фильтрация массива и возврат весь массив?

Добрый вечер!
Имеется массив
const Service = [];
Имеется функция по клику:
clickButtonFilter = (name) =>{
        this.setState({ Service: this.state.Service }, () => {
            const arr = this.state.Service.filter(function (category) {
                if(category.category === name){
                    return category;
                }
            });
            this.setState({Service: arr});
            console.log(arr);
            debugger;
        });
    };


Суть в чём:
Имеются 3 кнпоки: каждая передаёт категорию, падает в .filter и выводит те элементы, которые попадают.
Всё работает, отфильтровало и вывелись элементы которые надо.
Вопрос:
Как сделать так, чтоб при нажатие повторно на другую кнопку (из 3) вывело другие значения, а не приходил массив пустой?

В данный момент, нажал на 1 кнопку вывело, нажал на 2 или 3 кнопку, массив пустой. В исходное состояние весь массив вернуть..
  • Вопрос задан
  • 392 просмотра
Решения вопроса 1
@McBernar
Зачем вы делаете setstate и пишете туда данные из текущего стейта? Что это вообще?

const Service = [...]

clickButtonFilter = name => {
  const arr = Service.filter(el => el.category === name)
  this.setState({Service: arr})
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы