在做React项目实战(React后台管理系统、TypeScript+React18,P33)(author:前端乐哥),用到了menu做导航栏菜单项。
根据用户的操作习惯,选中一个二级菜单节点的时候,刷新页面的时候应该保持用户之前的选中状态,并且二级菜单展开项应该默认展开。
查看了一下antd中menu的API,定义如下
openKeys 当前展开的 SubMenu 菜单项 key 数组 string[]
selectedKeys 当前选中的菜单项 key 数组 string[]
乐哥视频里是把menu的数据项items改写成了一个对象的方式,我感觉比较麻烦,所以就写了这样一个方法可以不用改写items,实现刷新时初始化的展开
import {DesktopOutlined, FileOutlined, PieChartOutlined,TeamOutlined,UserOutlined} from '@ant-design/icons';
import type { MenuProps } from 'antd';
import { Menu } from 'antd';
import React, { useEffect, useState } from 'react';
import { useNavigate, Link, useLocation } from 'react-ro