前端学习笔记202308学习笔记第八十捌天-菜单组件抽取代码

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

posted @   前端导师歌谣  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示