Я использую топор ios для перехвата, чтобы поймать типичные ошибки, такие как 401, 503 и т. Д. c. Чтобы я отправил действие из самого перехвата, мне не нужно передавать его создателю действия. Я могу отлавливать все ошибки, кроме net::ERR_CONNECTION_REFUSED
. Когда сервер не работает.
Здесь я делюсь кодом того, что я реализовал.
import React, { useEffect } from "react";
import axios from "axios";
import store from "../store";
import { logout } from "../actions/authAction";
import { Toast } from "../components/toast";
const checkRequests = Wrapped => {
function CheckRequests(props) {
useEffect(() => {
axios.interceptors.response.use(
function(response) {
return response;
},
function(error) {
if (!error.response) {
console.log("Server is not running");
}
if (error.response.status === 401) {
store.dispatch(logout());
props.history.push("/");
Toast("Session has expired.Please login");
}
return Promise.reject(error);
}
);
});
return <Wrapped {...props} />;
}
return CheckRequests;
};
export default checkRequests;
Ваша помощь или предложения по этому вопросу очень ценятся. Заранее спасибо.