Как сделать запрос API на Jonery's .on ('said.bs.modal')? - PullRequest
0 голосов
/ 21 октября 2019

Я хотел бы сделать запрос 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> 
 )
}
...