这一课,我这里出现了一个问题

来源:20-8 完成动态权限菜单及路由跳转

星光荡开宇宙

2023-02-01

是HomeAside组件出现了问题, 代码出现在menus里面
图片描述

const menus = _.cloneDeep(routes).filter((v)=> {
    v.children = v.children?.filter((v)=> v.meta?.menu && permission.includes(v.name))
    return v.meta?.menu && permission.includes(v.name)
  })
  

  const items: MenuProps['items'] = menus.map((v1)=>{
    const children = v1.children?.map((v2)=>{
      return {
        key: v1.path! + v2.path!,
        label: v2.meta?.title,
        icon: v2.meta?.icon
      }
    })
    return {
      key: v1.path!,
      label: v1.meta?.title,
      icon: v1.meta?.icon,
      children
    }
  })

老师帮我看看,我发现permission这个值menus代码里面就是undefined了,我把menus删除之后就可以打印出permission的正常值,我找了很久没有发现是什么问题,老师帮我看看,谢谢啦。

写回答

1回答

西门老舅

2023-02-02

你好,我把你代码运行了一下,并没有你说的问题呀。

function HomeAside() {

  const permission = useAppSelector((s) => s.users.infos.permission) as unknown[]

  console.log(permission)   // ✔


  const menus = _.cloneDeep(routes).filter((v)=> {

    console.log(permission)   // ✔

    v.children = v.children?.filter((v)=> v.meta?.menu && permission.includes(v.name))

    return v.meta?.menu && permission.includes(v.name)

  })


menus外面和里面都是可以找到的,我用chrome测试的,可以把chrome升级到最新版本再试试。

0
5
星光荡开宇宙
回复
西门老舅
我懂了,谢谢老师
2023-02-04
共5条回复

Vue3 + React18 + TS4入门到实战 系统学习3大热门技术

专为初级前端人员设计,系统性学习三大技术

261 学习 · 182 问题

查看课程