动态导航栏

使用技术:react

动态导航和树形结构数据类似,可以通过递归来实现

 页面左边的导航栏是通过菜单管理动态展示的。

   

// 定义一个动态加载的组件
class MenuBox extends React.Component{ constructor(props){ super(props),
this.state = { } } render(){ // 遍历菜单栏 const loop = data => data.map((item)=>{
    // 如果下面有子菜单
if(item.children && item.children.length > 0){ return <SubMenu key={item.href} title={<span>{item.icon? <Icon type={item.icon} />:''}<span>{item.name}</span></span>}>{loop(item.children) }</SubMenu> }else{ return( item.isShow ? (<Menu.Item key={item.href}> <Link to={{pathname:item.href}}> {item.icon? <Icon type={item.icon} />:''} <span>{item.name}</span> </Link> </Menu.Item>) :null ) } }); return ( <Menu mode="inline" theme="light" defaultSelectedKeys={[this.props.selectKey]} defaultOpenKeys={[this.props.selecMenu]} style={{ height: '100%', borderRight: 0 }} onClick={this.props.onClickFn} > {loop(this.props.menuList)} </Menu> ) } }

 // 父组件调用子组件
 <MenuBox selecMenu={selecMenu} menuList={menuList} selectKey={selectKey} onClickFn={this.onClickFn}
 
 

转载于:https://www.cnblogs.com/zpxm/p/10109084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值