【发布时间】: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 中不可用。
我能想到的两个解决方案:
- 更改我的路线以使选项卡也成为参数
- 使用路由器转换挂钩设置我当前所在选项卡的(全局)状态,并在呈现(或单击)这些按钮时使用该状态。
有没有更简单的方法?我错过了什么吗?
【问题讨论】:
标签: javascript react-router flux