Я хотел бы сделать запрос API, когда мой мод начальной загрузки показан на странице. Обычно я делал бы это внутри componentDidMount()
, но я полагаюсь на jQuery для запуска моего модального режима из-за того, как компоненты React монтируются в нашем текущем приложении. Из того, что я прочитал в документах , вы можете передать функцию обратного вызова, когда модальный. Так что если я вызываю любую другую функцию, она работает не для моего дескриптора, но это не работает для меня.
export default class RoomConfig extends React.Component {
constructor(props) {
super(props);
this.state = {
patientName: '',
};
this.handleModalRef = this.handleModalRef.bind(this);
this.makeApiRequestOnShow = this.makeApiRequestOnShow.bind(this);
}
async makeApiRequestOnShow() {
const getRoomDetails = await axios.get(`/room/${this.state.roomId}/userconfig`);
const roomDetails = getRoomDetails.data;
const patientId = Object.values(roomDetails)[0].patient;
const getPatientName = await axios.get(`/patient/${patientId}/name`);
const patientName = getPatientName.data;
this.setState({ patientName });
}
handleModalRef(modalEl) {
jQuery(modalEl)
.on('shown.bs.modal', this.makeApiRequestOnShow);
}
}
render(){
return (
<div>
<div
className="modal fade"
id="room-config"
ref={this.handleModalRef}
tabIndex={-1}
role="dialog"
>
<div className="modal-dialog modal-dialog-centered" role="document">
<div className="modal-content"> </div>
</div>
</div>
)
}