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])