vue 动态加载路由 页面空白,刷新一下后才能正常显示页面。

我是动态从后台获取菜单信息,处理之后进行动态加载路由,但是页面首次加载一片空白,刷新一次才可以,代码如下,各位大神帮忙看一下,是哪里的问题。

clipboard.png

clipboard.png

store.dispatch('GenerateRoutes').then((res) => { // 根据roles权限生成可访问的路由表
    if(res.data){
        console.log(store.getters.addRouters,'testrouter')
        router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
        setlocalExpirytime.setAge(1*60*1000).set('routertime')
        next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
    }else{
        iView.Modal.warning({
            title: '提示',
            content: res.info,
            onOk(){
                store.dispatch('LogOut').then((res) => {
                    location.reload();
                    console.log(res,'logout')
                }).catch(err=>{
                    console.log(err,'logout')
                });
            }
        });
    }
}).catch((err)=>{
      console.log(err,'routererr')
})
阅读 16.8k
4 个回答

虽然过了很久了,但是还是回复一下,记录一下答案。在登录成功之后,需要用代码再次动态添加可访问的路由表即可解决。

图片描述

没有菜单栏, 路由是有了, 菜单menu值渲染一次, addRoutes后菜单不会变

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题