Material UI - React Router - 带有 ID 的面包屑导航
Material UI - React Router - BreadCrumbs with ID
我正在尝试实施 material ui 与 reactRouter 集成的面包屑,但我遇到了一个小问题,
const breadcrumbNameMap = {
'/users': 'Users',
'/users/:id': ':id',
'/users/:id/detail': 'Details',
}
然后是 material ui 示例中的组件:
<NoSsr>
<MemoryRouter initialEntries={['/stock']} initialIndex={0}>
<div >
<Route>
{({ location }) => {
const pathnames = this.props.location.pathname.split('/').filter(x => x)
return (
<Breadcrumbs arial-label="Breadcrumb">
{/* <Link component={RouterLink} color="inherit" to="/stocks">
Home
</Link> */}
{pathnames.map((value, index) => {
const last = index === pathnames.length - 1;
const to = `/${pathnames.slice(0, index + 1).join('/')}`;
return last ? (
<Typography color="textPrimary" key={to}>
{breadcrumbNameMap[to]}
</Typography>
) : (
<Link component={RouterLink} color="inherit" to={to} key={to}>
{breadcrumbNameMap[to]}
</Link>
)
})}
</Breadcrumbs>
)
}}
</Route>
</div>
</MemoryRouter>
</NoSsr>
发生的情况是,由于未指定“:id”,脚本无法找到正确的字符串以放入面包屑中。 (如果我指定 ID,它会按预期工作)
有什么方法可以将 :id 作为道具传递给面包屑,这样我就可以显示带有 ID 的完整路线?
您可以使用 match
代替位置,即 match.params.id
我正在尝试实施 material ui 与 reactRouter 集成的面包屑,但我遇到了一个小问题,
const breadcrumbNameMap = {
'/users': 'Users',
'/users/:id': ':id',
'/users/:id/detail': 'Details',
}
然后是 material ui 示例中的组件:
<NoSsr>
<MemoryRouter initialEntries={['/stock']} initialIndex={0}>
<div >
<Route>
{({ location }) => {
const pathnames = this.props.location.pathname.split('/').filter(x => x)
return (
<Breadcrumbs arial-label="Breadcrumb">
{/* <Link component={RouterLink} color="inherit" to="/stocks">
Home
</Link> */}
{pathnames.map((value, index) => {
const last = index === pathnames.length - 1;
const to = `/${pathnames.slice(0, index + 1).join('/')}`;
return last ? (
<Typography color="textPrimary" key={to}>
{breadcrumbNameMap[to]}
</Typography>
) : (
<Link component={RouterLink} color="inherit" to={to} key={to}>
{breadcrumbNameMap[to]}
</Link>
)
})}
</Breadcrumbs>
)
}}
</Route>
</div>
</MemoryRouter>
</NoSsr>
发生的情况是,由于未指定“:id”,脚本无法找到正确的字符串以放入面包屑中。 (如果我指定 ID,它会按预期工作)
有什么方法可以将 :id 作为道具传递给面包屑,这样我就可以显示带有 ID 的完整路线?
您可以使用 match
代替位置,即 match.params.id