addroutes()后正常能打开,刷新页面失效

addroutes()后正常能打开,刷新页面失效

用的是@花裤衩 的后台框架

  if (hasToken) {

if (to.path === '/login') {

next({ path: '/' })

} else {

const hasRoles = store.getters.userRole && store.getters.userRole.length> 0

if (hasRoles) {

next()

} else {

try {

const info = sessionStorage.getItem('userRole')

const roles = [info]

store.commit('user/SET_ROLE',info)

const accessRoutes = await store.dispatch('permission/generateRoutes', roles)

router.addRoutes(accessRoutes)

console.log(accessRoutes)

next({ ...to, replace: true })

} catch (error) {

}

}

}

}

export const asyncRoutes = [

{

path: '/user',

component: Layout,

redirect: '/user/managerUser',

meta: { title: '用户管理', icon: 'user',state: '1',roles: ['1']},

children: [

{

path: 'manager',

component: () => import('@/views/main/user/managerUser'),

name: 'ManagerUser',

meta: { title: '后台用户管理', state: '1',roles: ['1'] }

}

]

},

]

目前的情况:能正常打开权限页面,但是在动态权限页面刷新后跳转404
打印了路由表,在404的时候,看到路由表末尾也挂载了动态路由
我的想法:1. 先判断vuex中有没有role,如果有直接next(),如果没有,去sessionstorage取(在登录的时候存了role)

  1. 初次进来的时候vuex中没有role,所以去取出sessionstorage的role,此时页面正常挂载了动态路由
  2. 刷新页面的时候,vuex丢失,进入else,去取sessionstorage,为什么此时通过打印发现,先进了else,addroutes()也执行了,但是又进了if,并且页面进了404 ?


回答:

404 的话,就是说你的路由表里面没有对应的路由。

这里你需要看看是不是异步路由没有正确的加载。

以上是 addroutes()后正常能打开,刷新页面失效 的全部内容, 来源链接: utcz.com/p/935912.html

回到顶部