javascript - 将路由添加到面包屑组件
问题描述
我已经创建了一个 Breadcrumb 组件,但我正在努力为其添加路由。
到目前为止,该组件能够根据我们发送到数组的元素数量来加载自定义数量的节点,并在单击时将节点的名称登录到控制台。
需要的是在单击节点时使此面包屑更改 url。
它应该包含如下内容:
<Switch>
<Route path="/component0" component={Component0} />
<Route path="/component1" component={Component1} />
...
</Switch>
是否可以为自定义数量的节点制作它?
这是到目前为止的代码:
父组件:
import React, { useState } from 'react';
import Breadcrumbs from './Breadcrumbs';
export interface BreadcrumbProps {}
export function Breadcrumb(props: BreadcrumbProps) {
const [crumbs, setCrumbs] = useState(['Home', 'Category', 'Sub Category']);
const selected = (crumb: any) => {
console.log(crumb);
};
return (
<div>
<Breadcrumbs crumbs={crumbs} selected={selected} />
</div>
);
}
export default Breadcrumb;
子组件:
function Breadcrumbs(props: any) {
function isLast(index: number) {
return index === props.crumbs.length - 1;
}
return (
<nav className=''>
<ol className=''>
{props.crumbs.map((crumb, ci) => {
const disabled = isLast(ci) ? 'disabled' : '';
return (
<li key={ci} className=''>
<button className={`btn btn-link ${disabled}`} onClick={() => props.selected(crumb)}>
{crumb}
</button>
</li>
);
})}
</ol>
</nav>
);
}
export default Breadcrumbs;
解决方案
推荐阅读
- c - 错误:成员引用基类型 'struct configuration (char *)' 不是结构或联合
- javascript - 如何使用javascript将小时和分钟转换为分钟?
- flutter - 无法在 ChatScreen 颤动中获取用户聊天消息
- python - 如何使用列表理解从用户那里获取有效和特定数量的输入,就像下面在 python 中给出的语句一样
- javascript - 显示错误 l"cannot read property 'servers' of undefined"
- angular - 在 APP_INITIALIZER 完成之前触发了 Angular 服务构造函数
- android-studio - Android Studio 最新版本 4.0 上缺少底部栏的运行选项卡
- entity-framework-core - 当实体主键有值转换时,EF Core 在实体更新中忽略拥有的实体列
- c# - 访问 switch case 语句中的变量
- c# - 将字符串列表与 webelements 列表进行比较