Сделайте что-нибудь вроде ниже
Для этого вам нужен логический флаг.Инициализируйте логический флаг в конструкторе, используя this.state
constructor(props){
super(props){
this.state = {
callModal: false,
errorMessage: ""
}
}
}
. В приведенном ниже коде вам нужно изменить обычную функцию на функцию стрелки, чтобы получить доступ к this
внутри
axios.interceptors.response.use(response => {
return response;
}, error => {
// set callModal flag to true using this.setState
this.setState({
callModal: true,
errorMessage: error
});
return Promise.reject(error);
});
или связатьфункция, обеспечивающая доступ к this
axios.interceptors.response.use(function (response) {
return response;
}.bind(this), function (error) {
// set callModal flag to true using this.setState
this.setState({
callModal: true,
errorMessage: error
});
return Promise.reject(error);
}.bind(this));
Теперь при вызове рендера Модальный класс
render(){
const { callModal, errorMessage } = this.state;
return(){
<div>
{callModal && <ModalComponent errorMessage={errorMessage} />
</div>
}
}
Чтобы эта функция работала во второй раз, вам нужно установить для callModal значение falseкогда пользователь нажимает кнопку отмены в модальном режиме с помощью обратного вызова