React 左侧栏

一、路由配置
export const TabBarRouter = [
    {
        path:"/home",
        icon:"\ue628",
        name:"首页",
        meta:{
            flag:true
        },
        component:Home
    },
    {
        path:"/find",
        icon:"\ue663",
        name:"发现",
        meta:{
            flag:true
        },
        component:Find
    },
    {
        path:"/order",
        name:"订单",
        icon:"\ue737",
        meta:{
            flag:true
        },
        component:Order
    },
    {
        path:"/mine",
        name:"我的",
        icon:"\ue617",
        meta:{
            flag:true
        },
        component:Mine
    }
]

二、Tabbar遍历
                <ul>
                    {
                        TabBarRouter.map((item,index) => (
                            <li key={index}>
                                <NavLink to={item.path}>
                                    <i className="iconfont">{item.icon}</i>
                                    <span>{item.name}</span>
                                </NavLink>
                            </li>
                        ))
                    }
                </ul>

三、
import researchItems from "research_menu.js";
import { Menu, Button, Icon } from 'antd';
const { SubMenu } = Menu;

  componentWillMount(){
    var currentMenulist;
    if (this.props.is_research === 0) {
      currentMenulist = researchItems;
    } else {
      currentMenulist = researchItems;
    }
    // --------------------------------------------------------------
    const menu = currentMenulist.map(level1 => {
      // 1级菜单下渲染2级菜单************
      if (level1.child) {
        const level2menu = level1.child.map(level2 => {
          // -----------------------------------------------------------------------------------------
          // 1级菜单下渲染2级菜单************
          if (level2.child) {                  //如果2级菜单下有3级菜单 渲染3级菜单名字 + 下拉框
            const level3menu = level2.child.map(level3 => {
              if (level3.child) {         //如果3级菜单下有4级菜单 有下拉框
                const level4menu = level3.child.map(level4 => {
                  if (level4.child) {
                    return;
                  }else{
                    return(
                      // Option 9
                        {/* {level4.name} */}
                        {level4.name}
                    )
                  }
                })
                // 3级菜单下渲染4级菜单---------------------
                let level3Title;
                level3Title = (
                    {/* {level2.name[0]} */}
                    {level3.name}
                    {/* {level2.name} */}
                );
                return (
                  // 2级菜单下渲染3级菜单
                  
                    {/* {level3.name} */}
                    {/* {level2.name} */}
                    {level4menu}
                );
              }else{              //如果3级菜单下没有4级菜单 直接渲染 没有下拉框
                return(
                  // Option 9
                    {/* {level3.name} */}
                    {level3.name}
                )
              }
            })
            // ------------------------------------------------------------------------------
            // // 2级菜单下渲染3级菜单---------------------
            let level2Title;
            level2Title = (
                {/* {level2.name[0]} */}
                {/*  */}
                {level2.name}
                            {/* {level1.name} */}
                {/* {level2.name} */}
            );
            return (
              // 2级菜单下渲染3级菜单
              
                {/* {level3.name} */}
                {/* {level2.name} */}
                {level3menu}
            );
          }else{                    //如果2级菜单下没有3级菜单 只渲染3级菜单名字 没有下拉框
            return(
              // Option 9
                {/* {level2.name} */}
                  {/*  */}
                  {level2.name}
            )
          }
          // -----------------------------------------------------------------------------------------
        })
        // 1级菜单下渲染2级菜单---------------------
        let level1Title;
        level1Title = (
            {/* 首页 */}
            {level1.name}
        );
        return (
          // 1级菜单下渲染2级菜单
            {level2menu}
        );
      }
    })
    // --------------------------------------------------------------
    this.menu = menu;
  }
        <Menu
          defaultSelectedKeys={['1']}
          defaultOpenKeys={['cloudProfile']}
          mode="inline"
          theme="dark"
          inlineCollapsed={this.state.collapsed}
          // className="menus"
          onOpenChange={this.handleOpenChange.bind(this)}
          onSelect={this.handleSelect.bind(this)}
        >
          {/* ----------------------------------------------------------------- */}
          {/* <Link>首页</Link> */}
          {/* <li><Link to="http://localhost:8080/#/p">首页</Link></li> */}
          {/* <li><Link to={`/${parentPath}`}>首页</Link></li> */}
          {/* <Link to={`/p`}>首页</Link> */}
          {/* <SubMenu key="cloudProfile" title={
            } onTitleClick = {this.titleClick.bind(this)}>
            <Menu.Item key="cloudProfilesa">
              <Link to={`/${researchItems[0]['key'] + '/' + researchItems[0]['child'][0]['key']}`}>首页</Link>
            </Menu.Item>
            <Menu.Item key="cloudProfiles">虚拟资源云平台概况</Menu.Item>
            <Menu.Item key="cloudProfilesc">容器平台概况</Menu.Item>
          </SubMenu> */}
            
          {/* ----------------------------------------------------------------- */}
          {/* <SubMenu key="sub2"  title="Navigation Two" title={
              <span>
                <Icon type="appstore" />
                <span>Navigation Two</span>
              </span>
            }>
            <Menu.Item key="9">
              <Icon type="pie-chart" />
              <span>Option 1</span>
            </Menu.Item>
            <Menu.Item key="10">Option 10</Menu.Item>
            <SubMenu key="sub3" title="Submenu">
              <Menu.Item key="11">Option 11</Menu.Item>
              <Menu.Item key="12">Option 12</Menu.Item>
            </SubMenu>
          </SubMenu> */}
          {/* ----------------------------------------------------------------- */}
          {this.menu}
        </Menu>

 

posted on 2020-05-29 10:21  左侧岚  阅读(451)  评论(0编辑  收藏  举报

导航