javascript - 使用 React Bootstrap 选项卡反应嵌套路由
问题描述
我想将路由添加到我的画廊。我在我的页面上使用 Bootstrap 选项卡,每个选项卡都有一个用于不同类别图片的不同轮播。我想添加路由,这样用户就不会下载所有图片,而只会下载他选择的部分。
所以我使用 Tab.Container、Tab.Content、Tab.Pane 的方法。当用户选择每个链接时,#category 会添加到链接中,但我的 Route 不会加载组件,甚至不会呈现简单的文本。我不知道怎么了。
幻灯片使用适当的 eventKey 包装在 Tab.Pane 中。
图库内容代码:
import {Link, Switch, Route, useRouteMatch} from 'react-router-dom';
import Tabs from 'react-bootstrap/Tabs';
import Tab from 'react-bootstrap/Tab';
import SchodySlideShow from './../../components/Slideshows/SchodySlideshow';
import PlytkiSlideShow from './../../components/Slideshows/PlytkiSlideshow';
import BalkonSlideShow from './../../components/Slideshows/BalkonSlideshow';
import OtherSlideShow from './../../components/Slideshows/OtherSlideshow';
import { Nav } from 'react-bootstrap';
const Gallery = () =>{
let match = useRouteMatch();
return (
<React.Fragment>
{/*
The old version how it was done (and it worked)
<Tabs >
<Tab eventKey="Schody" title="Schody" className="tab-panel">
<SchodySlideShow />
</Tab>
<Tab eventKey="Płytki" title="Płytki" className="tab-panel">
<PlytkiSlideShow />
</Tab>
<Tab eventKey="Balkony" title="Balkony" className="tab-panel">
<BalkonSlideShow />
</Tab>
<Tab eventKey="Specjalne Zamówienia" title="Specjalne Zamówienia" className="tab-panel">
<OtherSlideShow />
</Tab>
</Tabs>
*/}
<Tab.Container defaultActiveKey="schody">
<Nav>
<Nav.Item>
<Nav.Link eventKey="schody" as={Link} to={`${match.url}#schody`}>Schody</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="balkony" as={Link} to={`${match.url}#balkony`}>Balkony</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="plytki" as={Link} to={`${match.url}#plytki`}>Płytki</Nav.Link>
</Nav.Item>
</Nav>
</Tab.Container>
<Tab.Content>
<Switch>
<Route path={`${match.url}#schody`} component={SchodySlideShow} />
<Route path={`${match.url}#balkony`} component={BalkonSlideShow } />
<Route path={`${match.url}#plytki`} component = {PlytkiSlideShow} />
</Switch>
</Tab.Content>
</React.Fragment>
);
}
export default Gallery;
解决方案
推荐阅读
- c++ - 是否可以将 SSL_set_fd() 与管道一起使用?
- android - 带有 SDK API v22 的 Android Studio Android 手机“Android 版本”9.0?
- c# - 我编写了一个提交按钮以将用户重定向到另一个页面,但它说找不到本地主机
- automation - 如何在 Gitlab 或 App Center 中自动增加 React Native Apps 版本
- swiftui - 为所有设备设置动态框架的最佳方法
- javascript - 与嵌套 iFrame 中的元素交互,页面上存在但返回 null
- python - 使用子进程运行 .exe 并使用 pyautogui 发送击键
- swift - Cocoa,Swift 4 - 当它的故事板与应用程序的 Main.Storyboard 不同时,如何以非编程方式嵌入自定义 NSViewController?
- php - 为什么 PHP 脚本会运行两次?
- python - 使用条件语句更改变量的值