| import { DesktopOutlined, PieChartOutlined } from "@ant-design/icons"; |
| import { Menu, MenuProps } from "antd"; |
| import React, { useState } from "react"; |
| import { useNavigate } from "react-router-dom"; |
| type MenuItem = Required<MenuProps>['items'][number]; |
| function getItem( |
| label: React.ReactNode, |
| key: React.Key, |
| icon?: React.ReactNode, |
| children?: MenuItem[], |
| ): MenuItem { |
| return { |
| key, |
| icon, |
| children, |
| label, |
| } as MenuItem; |
| } |
| const items: MenuItem[] = [ |
| getItem('geyao', '/geyao', <PieChartOutlined />), |
| getItem('fang', '/fang', <DesktopOutlined />), |
| ]; |
| const MainMenu: React.FC = () => { |
| const [openkeys, setOpenkeys] = useState(['']); |
| const nevigateTo = useNavigate() |
| const menuClick = (e: any) => { |
| nevigateTo(e.key) |
| |
| } |
| const handleChange = (keys: string[]) => { |
| setOpenkeys([keys[keys.length - 1]]) |
| } |
| return ( |
| <> |
| <div className="logo" /> |
| <Menu openKeys={openkeys} onOpenChange={handleChange} theme="dark" onClick={menuClick} defaultSelectedKeys={['/geyao']} mode="inline" items={items} /> |
| </> |
| ) |
| } |
| export default MainMenu |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通