在Material-UI面包屑中使用React Router DOM路由

托德·斯凯尔顿

我正在尝试使用React Router DOM Route组件动态生成Material-UI面包屑控件。

不幸的是,即使Route组件不匹配且不呈现任何内容,它也会作为子代添加到面包屑中,因此我在UI中得到了空的分隔符。

这是我当前的组件。

import Breadcrumbs from '@material-ui/core/Breadcrumbs';
import MuiLink from '@material-ui/core/Link';
import React, { FC } from 'react';
import { Link, Route } from 'react-router-dom';

const MainBreadcrumbs: FC = () => (
    <Breadcrumbs>
        <Route path="/" render={() => (<MuiLink component={Link} to="/">Home</MuiLink>)} />
        <Route path="/jobs" render={() => (<MuiLink component={Link} to="/jobs">Jobs</MuiLink>)} />
        <Route path="/jobs/:jobId" render={route => (<MuiLink component={Link} to={`/jobs/${route.match.params.jobId}`}>Job</MuiLink>)} />
        <Route path="/jobs/:jobId/steps/:stepIndex" render={route => (<MuiLink component={Link} to={`/jobs/${route.match.params.jobId}/${route.match.params.stepIndex}`}>Step</MuiLink>)} />
    </Breadcrumbs>
)

export default MainBreadcrumbs;

这将产生一个外观类似于Home / / /主页上的组件

瑞安·科格斯威尔(Ryan Cogswell)

下面是使用useRouteMatch挂钩执行此操作的一种可能方法

import React from "react";
import Breadcrumbs from "@material-ui/core/Breadcrumbs";
import { Link, useRouteMatch } from "react-router-dom";
import MuiLink from "@material-ui/core/Link";

export default function SimpleBreadcrumbs() {
  const homeMatches = useRouteMatch("/");
  const jobsMatches = useRouteMatch("/jobs");
  const jobMatches = useRouteMatch("/jobs/:jobid");
  const stepMatches = useRouteMatch("/jobs/:jobid/:stepIndex");
  return (
    <>
      <Breadcrumbs>
        {homeMatches && (
          <MuiLink component={Link} to="/">
            Home
          </MuiLink>
        )}
        {jobsMatches && (
          <MuiLink component={Link} to="/jobs">
            Jobs
          </MuiLink>
        )}
        {jobMatches && (
          <MuiLink component={Link} to={`/jobs/${jobMatches.params.jobid}`}>
            Job {jobMatches.params.jobid}
          </MuiLink>
        )}
        {stepMatches && (
          <MuiLink
            component={Link}
            to={`/jobs/${jobMatches.params.jobid}/${
              stepMatches.params.stepIndex
            }`}
          >
            Step {stepMatches.params.stepIndex}
          </MuiLink>
        )}
      </Breadcrumbs>
      <Link to="/">Go to Home</Link>
      <br />
      <Link to="/jobs">Go to Jobs</Link>
      <br />
      <Link to="/jobs/123/abc">Go to Job 123, step abc</Link>
      <br />
    </>
  );
}


编辑面包屑

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AngularJS + Angular UI Router制作自动动态面包屑

来自分类Dev

React Router 3 面包屑下拉菜单

来自分类Dev

在路由器插座注入的延迟加载模块中使用面包屑组件

来自分类Dev

无法使用 switch 语句渲染路由 React router dom 5.0.0

来自分类Dev

如何使用 react-router-dom 创建动态路由?

来自分类Dev

React-React Router Dom,hashbang路由解决方案

来自分类Dev

带异步的React-router-dom保护的路由

来自分类Dev

react-router-dom嵌套的路由和重定向

来自分类Dev

React Router Dom嵌套路由,或者如何传递

来自分类Dev

react-router-dom 路由组件需要重新加载页面

来自分类Dev

react-router v4 参数和面包屑组件

来自分类Dev

如何创建动态路由,以基于react-router-dom中组件的属性命名路由

来自分类Dev

如何使用react-router-dom在react中创建受保护的路由

来自分类Dev

当使用路由渲染道具而不是路由组件道具时,如何访问 react-router-dom 4 中的 url args?

来自分类Dev

使用react-router-dom时如何通过路由传递forwardRef

来自分类Dev

如何使用react-router-dom添加将渲染组件的路由?

来自分类Dev

使用Material UI标签作为链接的React Router

来自分类Dev

流星+铁路由器创建面包屑

来自分类Dev

流星+铁路由器创建面包屑

来自分类Dev

Angular 路由器、面包屑组件测试

来自分类Dev

无法在react-router-dom中仅渲染一条路由

来自分类Dev

react-router-dom如何更新路由组件内的父状态

来自分类Dev

react-router-dom多个布局配置不显示路由指示的组件

来自分类Dev

React-router-dom v4 路由以及如何在子组件内部显示

来自分类Dev

React Router (Dom) v4 在输入时重定向到不同的路由回车键

来自分类Dev

React-router-dom:在一个路由下渲染两个组件

来自分类Dev

无法在 react-router-dom 中将道具传递给路由器

来自分类Dev

react-router-dom 中的第二个和后续路由没有被渲染?

来自分类Dev

React Router Dom 受保护的路由在刷新页面期间始终重定向到登录

Related 相关文章

  1. 1

    如何使用AngularJS + Angular UI Router制作自动动态面包屑

  2. 2

    React Router 3 面包屑下拉菜单

  3. 3

    在路由器插座注入的延迟加载模块中使用面包屑组件

  4. 4

    无法使用 switch 语句渲染路由 React router dom 5.0.0

  5. 5

    如何使用 react-router-dom 创建动态路由?

  6. 6

    React-React Router Dom,hashbang路由解决方案

  7. 7

    带异步的React-router-dom保护的路由

  8. 8

    react-router-dom嵌套的路由和重定向

  9. 9

    React Router Dom嵌套路由,或者如何传递

  10. 10

    react-router-dom 路由组件需要重新加载页面

  11. 11

    react-router v4 参数和面包屑组件

  12. 12

    如何创建动态路由,以基于react-router-dom中组件的属性命名路由

  13. 13

    如何使用react-router-dom在react中创建受保护的路由

  14. 14

    当使用路由渲染道具而不是路由组件道具时,如何访问 react-router-dom 4 中的 url args?

  15. 15

    使用react-router-dom时如何通过路由传递forwardRef

  16. 16

    如何使用react-router-dom添加将渲染组件的路由?

  17. 17

    使用Material UI标签作为链接的React Router

  18. 18

    流星+铁路由器创建面包屑

  19. 19

    流星+铁路由器创建面包屑

  20. 20

    Angular 路由器、面包屑组件测试

  21. 21

    无法在react-router-dom中仅渲染一条路由

  22. 22

    react-router-dom如何更新路由组件内的父状态

  23. 23

    react-router-dom多个布局配置不显示路由指示的组件

  24. 24

    React-router-dom v4 路由以及如何在子组件内部显示

  25. 25

    React Router (Dom) v4 在输入时重定向到不同的路由回车键

  26. 26

    React-router-dom:在一个路由下渲染两个组件

  27. 27

    无法在 react-router-dom 中将道具传递给路由器

  28. 28

    react-router-dom 中的第二个和后续路由没有被渲染?

  29. 29

    React Router Dom 受保护的路由在刷新页面期间始终重定向到登录

热门标签

归档