动态传递未知数量的参数以响应路由器

时间:2019-05-24 04:52:40

标签: javascript reactjs react-router

在我的React App中,我具有创建文件夹和文件的功能。文件夹中可以包含任意数量的文件夹。

像这样

Folder-1
  |_Folder-1-1
  |_Folder-1-2
    |_Folder-1-2-1
    |_Folder-1-2-2
      |_Folder-1-2-2-1
       .
       .
       .

,它可以深入到任何层次。 目前,我正在做的是。当您单击Folder-1时,有一个组件可以加载根文件夹Folder-1。我更改了路线并加载了另一个组件。

我的路线看起来像<Route exact path="/clients/:folder" component={ClientFolder} />

但是这里的问题是我不知道参数的数量。

我的设想方式是

  • 您单击Folder-1,URL更改为/clients/Folder-1, 然后,它将加载Folder-1内的所有文件夹,即Folder-1-1Folder1-2
  • 您单击Folder-1-2,URL更改为/clients/Folder-1/Folder-1-2,在Folder-1-2内加载文件和文件夹

以此类推。

所以我的问题是,如何使用单个路由和单个组件拥有任意数量的嵌套路由

我正在使用react-router 5

2 个答案:

答案 0 :(得分:1)

这可以通过使用全部匹配*来完成。像这样:

<Route path="/clients/*">

/clients之后将使用match.params["0"]之后传递的任何路径。

答案 1 :(得分:0)

删除将起作用的完全匹配

您可以参考此示例https://codesandbox.io/s/great-tu-yr85t