react-router-dom 如何在封装的axios.js中实现跳转

统一在接口过期之后跳转到登录页,封装的js无法获取到react-router-dom的history对象。
请问该如何在接口过期之后跳转到登录页

阅读 6.3k
2 个回答

用 withRouter高阶函数把你的请求函数包起来试试,介绍

import { withRouter } from 'react-router-dom'
withRouter(function request() {
  this.props.history.push()
})

我也遇到这个问题,我先看到的解决方法都是直接用 location.href 去跳转的,不知道楼主是怎么解决的

我的解决方法
不应该在 axios 函数中跳转路由,而是应该在 axios 里面清除 cookie 的登录字段和 redux state 中的登录字段,然后界面因为登录字段是空会重定向到 Login 界面
在 axios 可以引入 store 然后调用 dispatch 方法去清除 登录字段

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题