У меня есть список имен комнат в <Panel value="room01">
. При нажатии мне нужно сохранить значение (которое находится в атрибуте) в массив и изменить цвет на зеленый. С другой стороны, мне также нужно иметь возможность отменить выбор, то есть значение должно быть удалено из массива, а цвет должен вернуться к значению по умолчанию. Как бы я достиг этого в JS / React?
С помощью приведенной ниже функции я могу получить значение для элемента
onSelectRooms = (e) => {
const selectedRooms = e.target.getAttribute("value");
}
export default class ExportReportRoomSelectionModal extends React.Component {
constructor(props) {
super(props);
this.state = {
rooms: roomOrder,
selectedRooms: [],
};
this.onSelectRooms = this.onSelectRoom.bind(this);
}
onSelectRooms = (e) => {
const selectedRooms = e.target.getAttribute("value");
}
render() {
return (
<Modal>
<Modal.Header closeButton>
<Modal.Title>TItle</Modal.Title>
</Modal.Header>
<Modal.Body>
<p>Number of rooms: {this.state.rooms.length}</p>
<p>Rooms:</p>
<Grid fluid={true}>
<Row className="show-grid">
{ this.state.rooms.map((name, i ) =>
<Col key={i} xs={2} md={2}>
<Panel onClick={this.onSelectRooms}>
<Panel.Heading value={name}>
{name}
</Panel.Heading>
</Panel>
</Col>
)}
</Row>
</Grid>
</Modal.Body>
</Modal>);
}
}```