为了账号安全,请及时绑定邮箱和手机立即绑定

react + dva 的路由跳转问题

react + dva 的路由跳转问题

海绵宝宝撒 2019-03-08 18:14:37
我使用以下方法跳转:先import { routerRedux } from 'dva/router';如果在组件内部用put(routerRedux.push('/login'))或者dispatch(routerRedux.push('/login'))都没问题,正常跳转,但是我想在一个util里控制跳转,需求是:这个requestUtil发送请求后若收到后台返回的自定义errorCode10101代表用户未登录或着token过期,此时跳转到登录界面.那么问题来了,在组件外直接使用routerRedux.push('/login')无效,而组件外也没有dispatch这个函数,使用import { dispatch } from 'react-redux';得到的dispatch居然是个class而不是函数,所以我该如何在一个util.js里面控制路由?另外,在index.js里const app = dva({  onError(e, dispatch) {    console.log(e.message);  },});这个onError确实能收到我抛出的error,也可以用这个dispatch调用push,但是这个方法完了error没有处理掉,不知在那个位置又重新抛出了,进新页面直接挂了,console显示Uncaught Error.所以这个方法也不能用.我该从什么地方拿到dispatch函数的引用?组件外(普通js代码里)难道不能控制路由吗?或者还有什么我不知道的方法?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1918 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信