程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 React Router {pathname}大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 React Router {pathnamE}

开发过程中遇到如何使用 React Router {pathnamE}的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 React Router {pathnamE}的解决方法建议,希望对你解决如何使用 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}  />
  • 子菜单 /z :
<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,请注明来意。