使用 React Router 锚定选项卡

Anchoring Tabs with React Router

如何使用 react-router 为我的某个页面创建带有锚点的 link?

示例:我想要这样的东西:mysite.com/#/nodes/10#instances

这会将某人引导至由 /nodes/:id 处理的路由,然后 select 该页面上与 "instances" 相对应的选项卡(react-boostrap 选项卡)。

通常你会在 react-router 中使用 <Link /> component, but you can't use a double hash for the specific link you want. Event with history routing (which doesn't use a hash for the URL) this is not supported(见最后一段)。

您可以实现哈希更改的侦听器。这是原生 javascript 事件 window.onhashchange(有关更多信息,请参阅此 hash change event MDN

您可以拥有一个包含所有选项卡作为子组件的顶级组件,并仅根据 url 的哈希值呈现特定选项卡。如果哈希值发生变化,您可以更新 state/props 以重新呈现并显示新选项卡。