Когда на плитке нажимают, вам нужно добавить в массив выбранных плиток, как это:
handleClick = tile => {
this.setState({
selected: this.state.selected.concat([tile]),
});
}
затем при рендеринге вы можете проверить, выбрана ли плитка что-то вроде этого:
<img src={tile.img} alt={tile.title} style={isSelected(this.state.selected, tile) ? styles.inputClicked:styles.inputNormal} />
с:
isSelected = (selected, tile) => {
// some logic to check that the tile is already selected e.g.
return selected.find(tileItem => tileItem.title === tile.title)
}
Убедитесь, что в конструкторе инициализировано выбранное состояние []:
this.state = {
selected: [],
};
UPDATE:
Если вы тоже хотите удалить плитки, вам нужно сделать что-то вроде этого:
handleClick = tile => {
const { selected } = this.state;
if(selected.find(item ==> item.title === tile.title)) {
// need to remove tile
this.setState({
selected: selected.filter(item => item.tile !== tile.title),
});
} else {
this.setState({
selected: this.state.selected.concat([tile]),
});
}
}