// 路由监听
export const RouterGuards = (history) => {
// history.block 使用方法参考
// https://stackoverflow.com/questions/65526447/react-router-v5-2-blocking-route-change-with-createbrowserhistory-and-history
// history.block 从回调中返回 false 会阻止通过,返回 true 允许通过。
history.block((location, action) => {
// 路由拦截 路由守卫
const info = auth.getUserInfo()
if (!info) {
// 没登录/没有权限/路由权限校验
console.warn('没有登录', location);
checkLogin()
return false
} else {
// 校验是否拥有该路由权限
let hasRouterAuth = checkAuth(location, 'router')
if (!hasRouterAuth) {
console.warn('没有目标路由权限', location);
return<
dva history.block 路由守卫、路由拦截 功能实现, 关键词: dva2.0 history.block react-router react-router-guards
于 2022-05-24 16:57:22 首次发布