原因:在刷新浏览器的时候,页面发生跳转但是动态路由的数据还没有添加上
解决思路:刷新后先加载动态路由,在进行路由跳转
1.新建文件夹封装一个添加路由的函数
export const getadd=()=>{
let user=getuserinfo()//获取存储到本地的用户信息
if (user) {//判断是否有用户信息,如果有就执行,没有就不执行
let allrouters=filterrouters(asyncrouter,user.luyuo)//获取用户可以访问的路由数组,页就是动态路由
let alllist=[...allrouters,...notdata]//将动态路由和404等路由和在一起
alllist.forEach((ite:any)=>{//循环添加动态路由
router.addRoute(ite)
})
console.log('刷新触发',alllist,router.getRoutes());//打印看是否添加成功
}
}
2.改变main.ts
const foot= async()=>{//引入封装的函数,使用异步先加载动态路由,最后进行挂载
await getadd()
app.use(createPinia())
app.use(ElementPlus)
app.use(router)
app.mount('#app')
}
foot()//调用执行方法
最后:欢迎各位大佬评论,指出错误