Итак, у меня есть 100 сопоставленных кнопок из массива, что-то вроде этого
{
buttons.map((button, index) =>
<StyledGameButton
key={index}
value={button}
onClick={this.checkButton}>
{ button < 10 ? `0${button}` : button }
</StyledGameButton>
)
}
Я хочу, чтобы пользователь нажимал все кнопки от 0 до 99, поэтому, когда он нажимает, например, 0, кнопка должна изменить цвет , Я сделал проверку функции, нажал ли он правильную кнопку, и если да, то я добавляю data-attr к этой кнопке (так я меняю цвет кнопок):
checkButton = e => {
const buttonId = e.currentTarget.getAttribute('value');
const nextButton = this.state.currentButton === null ? 0 : this.state.currentButton + 1;
if (buttonId == nextButton){
this.setState({
currentButton: parseInt(buttonId),
});
if (this.state.currentButton === 99) {
this.gameEnd();
};
e.currentTarget.setAttribute('data-status', 'correct');
}
}
Проблема в том, что я хочу чтобы сделать кнопку сброса, все кнопки будут «не нажаты», поэтому я должен удалить data-attr из всех кнопок одним щелчком мыши. Как я могу это сделать? Или есть лучшее решение для управления «состоянием» одной кнопки без создания 100 состояний?