具有多个动态参数的路径顺序

时间:2020-01-23 18:08:20

标签: reactjs react-router jsx

我的问题是我无法找到在深层链接中处理多个动态参数的最佳方法,而不必完全依赖JSX中Routes的顺序

我将首先概述应用程序的流程。

电视剧列表-> 用户点击系列->系列剧集列表-> 用户点击剧集->显示有关剧集的统计信息

此流程之后,我希望我的路径为/series/:series_id/episode/:episode_id

目前,我基本上是通过这样设置路由器来完成此工作的:

<Router>
  <Switch>
    <Route exact path="/series" component={SeriesLibrary} />
    <Route
      path="/series/:series_id/episode/:episode_id"
      component={Episode}
    />
    <Route path="/series/:series_id" component={EpisodeLibrary} />
  </Switch>
</Router

但这依赖于多动态路径(具有 series_id episode_id 的路径)先于 > just 具有 series_id

这是因为即使在路径为series/4356/episode/4567时,它也将与series/4356匹配,然后再渲染Episode组件。

我是否有更好的方法来解决React Router中的多个动态深层链接参数问题?

我觉得这不是最佳实践,严格依赖JSX元素的顺序来使您的应用正常工作吗?

1 个答案:

答案 0 :(得分:1)

您可以将确切的道具传递给EpisodeLibrary:

s = pd.Series([0.2, 0.6, 0.1, 0.9, 2])
bins = [0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, np.inf]
labels = ['0', '.25', '.5', '.75', '1', '1.25', '1.5', '1.75', '2']

s_cat = pd.cut(s, bins=bins, labels=labels)

Out[1165]:
0       0
1      .5
2       0
3     .75
4    1.75
dtype: category
Categories (9, object): [0 < .25 < .5 < .75 ... 1.25 < 1.5 < 1.75 < 2]