Reactjs 如何根据react ant design中的路径展开菜单?
我有这样一个代码:Reactjs 如何根据react ant design中的路径展开菜单?,reactjs,antd,expansion,Reactjs,Antd,Expansion,我有这样一个代码: import React, { useState } from 'react' import { useLocation } from 'react-router-dom' import { Menu } from 'antd' import { NavLink } from 'react-router-dom' const { SubMenu } = Menu const MenuC = () => { let location = useLocation()
import React, { useState } from 'react'
import { useLocation } from 'react-router-dom'
import { Menu } from 'antd'
import { NavLink } from 'react-router-dom'
const { SubMenu } = Menu
const MenuC = () => {
let location = useLocation()
let [openKeys, setOpenKeys] = useState(['account'])
let onOpenChange = (keys) => {
//
const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
setOpenKeys(latestOpenKey ? [latestOpenKey] : [])
}
return (
<div className="nav">
<div className="block">
<div className="block-title">
Menu
</div>
<div className="block-content">
<Menu mode="inline"
openKeys={openKeys}
onOpenChange={onOpenChange}
selectedKeys={[ location.pathname ]}
>
<SubMenu key="account" title="Account">
<Menu.Item key="/profile">
<NavLink to="/profile">My profile</NavLink>
</Menu.Item>
<Menu.Item key="/editprofile">
<NavLink to="/editprofile">Edit profile</NavLink>
</Menu.Item>
</SubMenu>
<SubMenu key="refs" title="Referrals">
<Menu.Item key="/refs">
<NavLink to="/refs">My referrals</NavLink>
</Menu.Item>
</SubMenu>
</Menu>
</div>
</div>
</div>
)
}
export default MenuC
import React,{useState}来自“React”
从“react router dom”导入{useLocation}
从“antd”导入{Menu}
从“react router dom”导入{NavLink}
常量{子菜单}=菜单
常量菜单=()=>{
let location=useLocation()
let[openKeys,setOpenKeys]=useState(['account'])
让onOpenChange=(键)=>{
//
const latestOpenKey=keys.find(key=>openKeys.indexOf(key)=-1)
setOpenKeys(latestOpenKey?[latestOpenKey]:[])
}
返回(
菜单
我的个人资料
编辑配置文件
我的下线
)
}
导出默认菜单
菜单项通常高亮显示,但子菜单未激活。我想检查路径名,但这很难。
实现子菜单扩展的最简单方法是什么?您可以触发“位置更改时使用效果”来检查路径名更改,并在状态变量中设置“打开键”值
useEffect(() => {
setOpenKeys(location.pathname === '/refs' ? ['refs'] : ['account'])
}, [location])