请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

generateMenus方法

老师,您好,关于 generateMenus 方法我按照自己的逻辑写了一个,运行出来结果是和您一致的,但是我没有使用 basePath,请问下这里要处理路径的原因是什么呢?也请您帮我看一下我的代码逻辑是否存在漏洞,谢谢

export const generateMenus = (filteredRoutes) => {
const result = [ ]

filteredRoutes.forEach((item) => {
const route = {
…item,
children: [ ]
}
if (!isNull(item.meta) && isNull(item.children)) {
// 1. 存在 meta && 不存在 children: 则被认为是 最底层子节点,需要放入 result 中
result.push(route)
} else if (!isNull(item.meta) && !isNull(item.children)) {
// 2. 存在 meta && 存在 children: 则被认为是 父节点,需要进入 children 继续遍历
route.children.push(…generateMenus(item.children))
result.push(route)
} else if (isNull(item.meta) && !isNull(item.children)) {
// 3. 不存在 meta && 存在 children: 则被认为是 公开路由表 || 父节点不需要显示,需要进入 children 继续遍历,但与 2 不同的是,由于父节点不需要显示,所以只需要将子节点直接放进 result
result.push(…generateMenus(item.children))
}
// 4. 不存在 meta && 不存在 children: 则被认为是 不需要处理的数据,直接 return
})

return result
}

正在回答 回答被采纳积分+3

1回答

Sunday 2024-03-09 00:18:07

你好

basePath 主要为了处理路径合并的问题。

比如这样的路由

{

path: '/user',

children: [

{

    path: '/manage'

}

]

}

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信