前言:在写项目时需要在非组件的js文件里 进行路由跳转,比如axios里请求响应拦截后做路由跳转, 但是又不能获取到this.props.history, 那怎么才能获取到history对象呢?
1.创建一个 utils/history.js
import { createBrowserHistory } from 'history';
export default createBrowserHistory();
2.主入口index.js
import ReactDOM from 'react-dom';
import React from "react";
import { Router, Switch } from "react-router-dom";
import { renderRoutes } from '@/router/router-config';
import routes from './routes'
import history from '@/utils/history' //将配置好的history.js引入
const RouterView =
<Router history={history}> //这里一定要记得配置
<Switch>
{renderRoutes(routes)} //你自己的路由列表
</Switch>
</Router>
ReactDOM.render(RouterView, document.getElementById("root"));