通过后端返回数据然后找到对应组件 addRouter 实现用户路由权限,在动态加载组件时,一直报错,找不到组件;相关代码actions: {GenerateRoutes({ commit, rootState }) { return new Promise(resolve => { let accessedRouters = []; let menuList = rootState.user.menu; menuList.forEach(function(item,index,arry){ item.component = Layout; if(item.children&&item.children.length>=1){ item.children.forEach(function(chItem, chIndex,chArry){ let path = chArry[0].path; if(typeof chItem.component=='string'){ chItem.component = resolve => require([`../../views/` + chItem.component + `.vue`], resolve); }; item["redirect"] = item.path+"/"+path; item["meta"] = { "title": item.title,"icon": item.icon}; chItem["meta"] = { "title": chItem.title} }); }; }) accessedRouters = menuList; accessedRouters.push({ path: '*', redirect: '/404', hidden: true }); commit('SET_ROUTERS', accessedRouters) resolve() })}}后来把组件名字用变量接收下再拼接就可以了,具体原因还在研究,有碰到这个问题的多注意一下,够坑的;let comName = chItem.component;if(typeof chItem.component=='string'){ chItem.component = resolve => require([`../../views` + comName + `.vue`], resolve); };
添加回答
举报
0/150
提交
取消
