【问题标题】:react-router Links based on current routereact-router 基于当前路由的链接
【发布时间】:2016-07-01 15:49:30
【问题描述】:

我有以下路由配置,其中有一个组件 ShowObj,其中有多个选项卡显示对象的不同方面。

<Route path={“/obj/:id"} component={ShowObj}>
    <Route path={“tab1”} component={Tab1} />
    <Route path={“tab2”} component={Tab2} />
    <IndexRoute component={Tab1} />
</Route>

在顶部,在我的 ShowObj 组件中,我想渲染按钮以转到下一个/上一个 obj。这样做时,我想保留当前选项卡而不是转到默认选项卡。即,如果我当前在 tab2 中的 obj XXX 上(路径“/obj/XXX/tab2”)并且我转到对象 YYY,我想留在同一个选项卡上(路径“/obj/YYY/tab2”)。

由于路由器已经在进行选择,我希望有一种方法可以在我的 ShowObj 中以某种方式知道确实选择了哪个选项卡。我尝试向路线本身添加一个道具,例如:

<Route path={“tab1”} component={Tab1} currentTab="tab1"/>

但它似乎只在 Tab1 中可用,而在 ShowObj 中不可用。

我能想到的两个解决方案:

  1. 更改我的路线以使选项卡也成为参数
  2. 使用路由器转换挂钩设置我当前所在选项卡的(全局)状态,并在呈现(或单击)这些按钮时使用该状态。

有没有更简单的方法?我错过了什么吗?

【问题讨论】:

    标签: javascript react-router flux


    【解决方案1】:

    我可以建议你从 redux-react-router、mobx-react-router 或提供当前路由器的类似库中获取当前位置。或者你可以将当前位置传递到上下文中并从那里获取它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2017-07-17
      • 1970-01-01
      • 2019-12-19
      • 2018-12-13
      相关资源
      最近更新 更多