【发布时间】:2022-01-04 21:26:12
【问题描述】:
我在使用 @reach/router 时出现了奇怪的行为
我的目标是有一个带有标签的页面。当我单击一个选项卡时,url 会发生变化,页面也会发生变化(尽管它不会重新加载整个页面)。
我一直在使用chakra ui,因为它使主题对我来说更容易。
我得到的行为很奇怪。有时,当我在选项卡之间切换时,网址会发生变化。它工作得很好。然后有时 url 不会改变,即使我已经切换了标签。
我的项目位于[这里][1]
import React from "react";
import { Router, Link } from "@reach/router";
import {
Tab,
Tabs,
TabList,
TabPanel,
TabPanels,
useColorModeValue
} from "@chakra-ui/react";
import Somatic from "../pages/somatic";
import Ef from "../pages/executive_functions_coaching";
import Intro from "../pages/home";
function ConceptTabs(props) {
const [tabIndex, setTabIndex] = React.useState(0);
return (
<>
<Tabs
size="lg"
isFitted
variant="soft-rounded"
colorScheme="yellow"
onChange={(index) => {
setTabIndex(index);
}}
>
<TabList>
<Tab>
<Link to="/">
Tab1
</Link>
</Tab>
<Tab>
<Link to="/executive_functions_coaching/">
Tab2
</Link>
</Tab>
<Tab>
<Link to="/somatics/">
Tab3
</Link>
</Tab>
</TabList>
<TabPanels p="2rem">
<TabPanel>
<Router>
<Intro path='/' />
</Router>
</TabPanel>
<TabPanel>
<Router>
<Ef path='/executive_functions_coaching/' />
</Router>
</TabPanel>
<TabPanel>
<Router>
<Somatic path='/somatics/' />
</ Router>
</TabPanel>
</TabPanels>
</Tabs>
</>
);
}
export default ConceptTabs;
我尝试使用<NavLink>,但遇到了类似问题。
我对路由很陌生,但我已经让它在没有标签的情况下工作。我想知道是否有办法让路由器使用标签?
【问题讨论】:
-
删除
....然后会发生什么 -
谢谢@KeatonBenning... 情况变得更糟了。与更改网址更不一致
-
您的链接代码和框没有运行,它似乎缺少文件。当您有一个运行 CSB 供我们检查时,您能否对其进行编辑以解决问题并报告回来?根据我在上面看到的,您的路由器太多了……您通常只需要一个包装整个应用程序即可提供任何路由上下文。我敢肯定,
reach-router与react-router的表亲库没有什么不同。 -
感谢您提请我注意@DrewReese。我之前编辑过它,但它没有保存。我又做了一次并简化了它。它现在在我这边工作。希望文件保存。链接仍然有问题,但沙箱应该可以正常运行
-
另外 - @DrewReese 我试过一个路由器,但我不知道如何让它与选项卡一起使用。我使用的选项卡功能围绕着每个页面的内容,因此我无法将路由器放置在选项卡中的不同页面周围。我能够在 index.js 中放置一个路由器,但它仍然无法正常工作
标签: javascript reactjs reach-router