场景:A页面和B页面,菜单栏/导航栏对应A页面和B页面,如果不处理,当在B页面刷新后,antd菜单栏/导航栏会对应到A选项上,而页面依然停留在B页面。
实现很简单:
antd提供了:
defaultSelectedKeys={defaultSelectedKeys} //默认选择的菜单栏
defaultOpenKeys={['/']} //默认打开的菜单栏
selectedKeys={selectedKeys} //当前选择的菜单栏
我们刷新程序,只需要修改selectedKeys就可以了,配合react-router-dom
import { useLocation } from 'react-router-dom';
const location = useLocation();
useEffect(()=>{
setSelectedKeys([location.pathname])
},[location]);
location.pathname能够获取到当前路由的地址,页面刷新,获取当前路由的地址后设置给当前打开的菜单栏,实现菜单栏与页面一一对应。