Перейдите на другой экран от перехватчика экземпляра Axios - PullRequest
0 голосов
/ 05 мая 2019

Я использую Axios в React Project и создаю некоторый общий код для ошибок, которые я хотел создать, и использовать перехватчики Axios.

Ниже приведен мой код для моих маршрутов React

import React, { Component } from "react";
import { Route, Switch } from "react-router-dom";
import Home from "./scenes/Home";
import { ProtectedRoute } from "./_hoc/ProtectedRoute";
import Admin from "./scenes/Admin";
import Login from "./components/Auth/Login";

export default class Routes extends Component<any, any> {
  render() {
    return (
      <div>
        <Switch>
          <Route exact path="/" component={Home} />
          <Route exact path="/login" component={Login} />
          <ProtectedRoute exact path="/admin" component={Admin} />
        </Switch>
      </div>
    );
  }
}

Ниже приведен код для моего экземпляра Axios

import axios from "axios";

const axiosInstance = axios.create({
  baseURL: `http://localhost:55266/api/`
});

axiosInstance.interceptors.request.use(request => {
  if (request.url != "/Login/Authenticate") {
    //TO DO
    //request.headers["Authorization"] = "Bearer";
  }
  return request;
});

axiosInstance.interceptors.response.use(
  response => {
    if (
      response.request.responseURL ==
      response.config.baseURL + "Login/Authenticate"
    ) {
      localStorage.setItem("TAGAuthToken", response.data.data.token);
      //I DON'T WANT THIS PAGE TO GET RELOADED.
      window.location.href = "/Admin";
    }
    return response;
  },
  error => {
    return Promise.reject({ ...error });
  }
);
export default axiosInstance;

Я не хочу перезагрузить страницу с помощью window.location, но хочу перемещаться по истории.Я не могу понять, как этого добиться.

То, как я вижу в различных уроках, говорят, что они используют Router вместо Switch и используют библиотеку history v4, а затем мы можем использовать историю где угодно, ноЯ бы хотел использовать Switch вместо Router.

С нетерпением ждем ценных ответов.

ПРИМЕЧАНИЕ. Я уже проверил сообщение Программно перемещаться с использованием реагирующего маршрутизатора , но этоне отвечает на мой вопрос.Я хочу перейти из файла AxiosInstance.Это может быть достигнуто с помощью пакета History NPM, но требует использования маршрутизатора, но в соответствии с моими требованиями мне нужно использовать Switch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...