【发布时间】:2021-09-10 08:42:44
【问题描述】:
我对 React 很陌生,我现在正在使用 ReactJS 和 material-ui 框架开发一个网站。
我的问题是如何自定义标签链接网址,如this site
在此站点上,当我切换选项卡按钮时,通过添加 #(a-custom-tab-link) 来更改 URL。
假设我在xxx/yyy url 上,如果我切换名称为zzz 的选项卡,则url 将更改为xxx/yyy#zzz。
我已经使用引用 material-ui tabs docs 的 material-ui 选项卡组件制作了选项卡。
我可以使用useRouteMatch 更改标签网址,代码示例是here。
这是我的问题。
- 如何更改标签 URL 不是通过添加
/而是添加#像 tab on this site - 如何将第一个选项卡的路由器设置为与其父级路由器相同,以便自动显示。 (我在没有考虑路由器的情况下这样做,但如果我考虑在选项卡切换上更改路由器,我不能这样做)
这是我现在的代码 sn-p。
var TabHeaders = tabs.map((tab, index) => (
<Tab
key={index.toString()}
component={Link}
to={`${match.url}/${tab.label}`}
label={tab["label"]}
{...a11yProps(tab["index"])}
/>
));
var TabContents = tabs.map((tab, index) => (
<Route key={tab.id} exact path={`${match.url}/${tab.label}`}>
<TabPanel value={value} index={tab["index"]}>
{tab["children"]}
</TabPanel>
</Route>
));
简单地将 / 更改为 # 并不能像下面这样工作。
var TabHeaders = tabs.map((tab, index) => (
<Tab
key={index.toString()}
component={Link}
to={`${match.url}#${tab.label}`}
label={tab["label"]}
{...a11yProps(tab["index"])}
/>
));
var TabContents = tabs.map((tab, index) => (
<Route key={tab.id} exact path={`${match.url}#${tab.label}`}>
<TabPanel value={value} index={tab["index"]}>
{tab["children"]}
</TabPanel>
</Route>
));
任何帮助将不胜感激,并提前致谢。
【问题讨论】:
-
@Vldislav 我不确定..jasonwatmore.com/post/2020/03/23/… 你可以试试这个
标签: reactjs routes tabs react-router-dom