Нужно посчитать сколько объектов было выбрано.
В state есть пустой объект, при клике на карточку в этот объект записывается информация в таком виде id карточки - ключ, состояние (true/false) - значение по этому ключу. Я пытаюсь сделать счетчик карточек, у которых состояние true, для этого прохожу forEach по объекту из state и если id:true то увеличиваю счетчик. Вот код:
constructor(...args) {
super(...args);
this.handleOnClick = ::this.handleOnClick;
this.amountSelectSwatches = ::this.amountSelectSwatches;
this.state = {
selectCard: {} //объект, где хранятся выбранные карточки
};
}
//по клику делам карточку выделенной и пишем в объект ее id
handleOnClick(i){
this.setState({
selectCard: {
...this.state.selectCard,
[i]: !this.state.selectCard[i]
}
},() => {this.amountSelectSwatches(this.state.selectCard)}); // вызов счетчика
}
amountSelectSwatches(obj){
this.count = 0;
Object.keys(obj).forEach((i) => {
if (obj[i]) {
this.count = this.count + 1;
}
});
}
Работает не так как ожидается, не могу понять в чем ошибка