vue-router 动态添加菜单刷新后点击菜单报错

vue.esm.js?65d7:431 [Vue warn]: Error in beforeCreate hook: "TypeError: Cannot read property 'call' of null
router.addRoutes(accessRoutes)
next({ ...to, replace: true })

动态添加菜单,点击菜单后报错,后来发现是因为刷新后把动态菜单数据放在了localStorage,所以序列化成了json字符串,反序列化之后componen还是不能识别,所以只能写一个actions 重新匹配菜单,

export const componentsMap = {
    application_manage: () => import('@/views/my/manager/statistics')   
}


getRouter({ commit, state }) {
        return new Promise((resolve) => {
            let ruleList = comparedRouter(state.list)
            ruleList.push({ path: '*', redirect: '/404', hidden: true })
            resolve(ruleList)
        })
    },

comparedRouter这个是匹配方法,每个人不一样就不放出来了

const accessRoutes = await store.dispatch('login/getRouter')
router.addRoutes(accessRoutes)
next({ ...to, replace: true })

每次刷新都要重新去匹配动态菜单,添加进去。可以和鉴权放在一起

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容