问题:使用window.g_app._store.dispatch失效(session过期,后端返回401错误,但是没有跳转到登录页)
在全局调用dva的数据及dispatch方法(比如:request.js里调用)
解决方案:
window.g_app._store.dispatch 改用 getDvaApp()._store.dispatch 就可以了
import {getDvaApp} from 'umi';
/**
* 401 错误处理方法
*/
const error401Handler = () => {
// 第一种 这个umi2还可以 umi3就不可以了
window.g_app._store.dispatch({
type: CURRENT_ENV === 'production' ? 'user/ssoLogout' : 'user/logout',
});
// 第二种 调用dispatch(所有models都可以)
getDvaApp()._store.dispatch({
type: CURRENT_ENV === 'production' ? 'user/ssoLogout' : 'user/logout',
});
};