js匹配路由

获取匹配的路由matchPath数组

 menus: [
        {
          name: '支用详情',
          path: '/workplat/task-detail/disburse-apply-approve/disburse-detail',
          matchPath: '/workplat/task-detail/disburse-apply-approve/disburse-detail',
        },
        {
          name: '授信详情1',
          path: '/workplat/task-detail/disburse-apply-approve/shouxin1',
          matchPath: '/workplat/task-detail/disburse-apply-approve/shouxin1',
        },
        {
          name: '授信详情2',
          path: '/workplat/task-detail/disburse-apply-approve/shouxin2',
          matchPath: '/workplat/task-detail/disburse-apply-approve/shouxin2',
        },
      ],


matchSelectedMenu = () => {
    const { menus } = this.state;
    const paths = window.location.pathname.split('/');
    const matchs = menus.filter(menu => {
      const matchPaths = menu.matchPath.split('/');
      for (let i = 0; i < paths.length; i += 1) {
        if (matchPaths[i] !== '*' && matchPaths[i] !== paths[i]) {
          return false;
        }
      }
      return true;
    });
    console.log('matchSelectedMenu', paths, matchs);
    this.setState({
      selectedKeys: matchs.map(v => v.matchPath),
    });
  };

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容