大佬教程收集整理的这篇文章主要介绍了如何使用 React Router {pathname},大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的应用中创建导航。 我正在使用 Antd 和 React Router。我创建了 Menu 组件,它呈现并返回一个完整的菜单。有一个属性:SELEctedKeys 和 defaultSELEctedKeys。所以它在我的两个菜单上都可以正常工作,一个通过这样的路线导航:
/x
/y
/z <- redirect to /z/a
..
第二个是这样的:
/z/a
/z/b
/z/c
所以当我点击 /y route Antd 选择的键将是 /y route 并突出显示菜单项,当我点击 /z/b 菜单中的 /z/b 项将被突出显示,但我也想突出显示父路由菜单项是 /z。 我要呈现菜单的组件:
const menuItems = routes.map(({ name,path }) => (
<Menu.Item key={path}>
<link to={path}>{name}</link>
</Menu.Item>
));
return (
<Menu
theme={themE}
mode={modE}
{...items}
>
{ menuItems}
</Menu>
);
和用法:
<MenuItems routes={mainRoutes} />
<MenuItems routes={subroutes} />
主子路由实现:
const mainRoutes= [
{
path: '/x',name: 'x',component: ...,},{
path: '/y',name: 'y',{
path: '/z',name: 'z',];
const subroutes = [
{
path: /z/a.,name: 'z a',{
path: /z/b,name: 'z b',];
您可以在 Ant Design 的 SELEctedKeys
组件中使用 @H_813_5@menu 属性指定关联的路由。访问 here 了解更多信息。
// ...
function SideBar(){
// ...
const LOCATIOn = useLOCATIOn();
const getAssociatedPaths = () => {
if(mainRoutes.find(route => route.path === LOCATIOn.pathName)){
return null; // matched with main route
}
const firstSlug = LOCATIOn?.pathname.split("/")[0];
const matchedMainRoute = mainRoutes.find(route => route.path.slice(1) === firstSlug);
if(matchedMainRoutE) return [ matchedMainRoute.path,LOCATIOn.pathname ];
return null;
}
return (
<Menu
theme={themE}
mode={modE}
SELEctedKeys={getAssociatedPaths()}
{...items}
>
{ menuItems}
</Menu>
);
}
但是,如果您在 @H_813_5@mainRoutes 中声明子路由,那将是一个好方法。因此,您可以轻松识别您的父路由/路径。
以上是大佬教程为你收集整理的如何使用 React Router {pathname}全部内容,希望文章能够帮你解决如何使用 React Router {pathname}所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。