Antd如何用Menu组件渲染二级或三级目录

今天给大家带来React项目结合Antd的时候如何渲染二级菜单
就算你用其他的UI框架也是换汤不换药。

1.首先配置Antd,关于配置Antd请前往React配置Antd处观看。

2.然后在routes文件定义你的sidebar数据
在这里插入图片描述
其中有一个isSiderbar标记,这个就是我们待会用来判断是否是sidebar的类型。

3.接下来我们写二级菜单的数据
在这里插入图片描述
其中有isresourceManagementChildren标记是判断是否为指定分组的二级菜单的。(如果你有三级菜单什么的就在自己创建数据加标记就可以了)

4.导出你的数据

5.在你的sidebar组件中从antd引入你需要的组件

import {
	Layout,
	Menu,
	Icon,
} from 'antd'
const { Sider } = Layout;
const SubMenu = Menu.SubMenu;

6.然后再引入你刚刚写的routes数据
在这里插入图片描述
7.筛选你想要的数据,我们这里这需要sidbar的数据,那么我们就用filter筛选一下
在这里插入图片描述
8.再render里面渲染元素

render() {
	return (
	     <Sider
	         collapsible
	         collapsed={this.state.collapsed}
	         onCollapse={this.onCollapse}
	     >
	         <div className="logo">智慧实验考试系统</div>
	         <Menu theme="" defaultSelectedKeys={['foundationplatform']} mode="inline">
	         {
	             sidebar.map(curr=>{
		            if(curr.isMenubar){     //判断是否是有下拉选项的菜单项
		                 return (
		                 <SubMenu
		                     key={curr.path}
		                     title={<span><Icon type={curr.iconType} /><span>{curr.title}</span></span>}
		                 >{
		                     resourceManagementChildren.map(item=>{
		                     //判断当前遍历到的列表的list属性是什么,渲染相对应的子目录
		                     //资源管理子目录渲染
		                     if(curr.list==='ResourceAdministration' && item.isresourceManagementChildren){
		                         return (
		                         <Menu.Item 
		                             key={item.path}
		                             onClick={this.menuChange}
		                         >{item.title}</Menu.Item>
		                         )
		                     }
		                     return null;
		                     })
		                 }</SubMenu>
		                 )
		             }
		             return (
		                 <Menu.Item 
		                     key={curr.path}
		                     onClick={this.menuChange}>
		                     <Icon type={curr.iconType} />
		                     <span>{curr.title}</span>
		                 </Menu.Item>
		             )
	             })
	         }
	         </Menu>
	     </Sider>
	 )
	}

这样我们的二级菜单或者三级菜单就完成了!喜欢的别忘了关注笔者博客或者点个赞再走哦~
我们来一起看看效果图吧!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值