Я хочу добавить значение в массив в состоянии onClick
событие в React.
Пока что с функцией onSelectRooms
я могу получить значение с помощью e.target.id, но он не добавляет значение в массив selectedRooms
, который находится в состоянии.
onSelectRooms = (e) => {
const newItem = e.target.id;
this.setState({
selectedRooms: [...this.state.selectedRooms, newItem]});
}
export default class ExportReportRoomSelectionModal extends React.Component {
constructor(props) {
super(props);
const roomOrder = configContext.value.roomOrder;
this.state = {
rooms: roomOrder,
selectedRooms: [],
};
this.onSelectRooms = this.onSelectRooms.bind(this);
}
onSelectRooms = (e) => {
const newItem = e.target.id;
this.setState({
selectedRooms: [...this.state.selectedRooms, newItem]});
}
render() {
return (
<Modal>
<Modal.Header>
<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}>
<Panel onClick={this.onSelectRooms}>
<Panel.Heading id={name}>
{name}
</Panel.Heading>
</Panel>
</Col>
)}
</Row>
</Grid>
</Modal.Body>
</Modal>);
}
}