umi 导航菜单的空白页问题

4 篇文章 0 订阅

主思路

routes里的上级菜单必须设定path,否则下一个二级菜单会出现空白页。

详情

umi的导航菜单是在 config/routes.ts 里设定的,比如:

export default [
  {
    name: 'home',
    path: '/home',
    component: './Home',
  },
  {
    name: 'test1',
    routes: [
      {
        path: '/test1/subtest1',
        name: 'subtest1',
        component: './subtest1',
      },
    ],
  },
  {
    name: 'test2',
    routes: [
      {
        path: '/test2/subtest2',
        name: 'subtest2',
        component: './subtest2',
      },
    ],
  },    
];

显示很正常,但点击 subtest2 的时候会有问题,显示一个空白页,但并没有其他错误。经过替换法,发现父菜单没有 path 导致的这个问题。

正确的routes.ts是这样的

export default [
  {
    name: 'home',
    path: '/home',
    component: './Home',
  },
  {
    name: 'test1',
    path: '/test1',
    routes: [
      {
        path: '/test1/subtest1',
        name: 'subtest1',
        component: './subtest1',
      },
    ],
  },
  {
    name: 'test2',
    path: '/test2',
    routes: [
      {
        path: '/test2/subtest2',
        name: 'subtest2',
        component: './subtest2',
      },
    ],
  },    
];

总结

原始的替换法在比较极端的情况下还是有用的,umi还是有一些隐藏的坑,如果遇到类似的问题可以从antd pro生成一个标准的project,然后用替换法来检查哪里有问题。文档可能没这么全,甚至log也未必会有。

参考

umi 路由 路由

antd pro 新增页面 - Ant Design Pro

菜单的高级用法 - Ant Design Pro

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值