1、菜单递归(react+antd+ts)
// 递归生成菜单 renderMenuItem = (list: any) => { const res = list && list.length && list.map((route: any) => { const childrenList = route.subMenu if (childrenList && childrenList.length > 0) { return ( <SubMenu key={'/' + route.menuCode} title={ <div> <Icon type={route.iconCode} style={{ fontSize: '14px' }} /> <span>{route.name}</span> </div> } > {this.renderMenuItem(childrenList)} </SubMenu> ) } else { return ( <MenuItem key={'/' + route.menuCode}> <Icon type={route.iconCode} style={{ fontSize: '14px' }} /> <span>{route.name}</span> </MenuItem> ) } }) return res } <Menu mode="inline" onClick={this.handleMenuClick} selectedKeys={[selectedKeys]} openKeys={openKeysCopy} onOpenChange={this.handleMenuOpenChange} > {this.renderMenuItem(menuList)} </Menu>