React Router:如何匹配嵌套路由的不确定数量的子路径?

大赌徒

我正在尝试创建一个文件浏览器,如 Dropbox。将有一个不确定数量的子路径,如下所示:

localhost:3001:file-manager/folder1/folder2/...folderN

我有这个:

<Route path="/file-manager/:folderName" component={LandingPage} />

这允许我访问:http://localhost:3001/file-manager/foo/bar/baz但是,当我检查时props.match我没有看到它,它只显示匹配foo,而不显示低于它的级别(bar 和 baz)。

match:
isExact: false
params: {folderName: "foo"}
path: "/file-manager/foo"
url: "/file-manager/foo"

我该怎么做?我正在阅读和观看的有关递归路由的所有教程都附加到视图中。我想更换视图。

里克登汉

几个月前我遇到了完全相同的问题。我现在找不到我使用的确切代码,但是如果我没记错的话,您可以使用星号表示“从现在开始的所有内容”,其中包括任何其他路径分隔符:

<Route path="/file-manager/:folderName*" component={LandingPage} />

这确实意味着这props.match.params.folderName将是完整的字符串,因此/如果您需要一组路径组件,则必须自己拆分它

重要提示:*将使它匹配任何东西,所以如果你有一个你想要匹配的特定路线,确保你把它放在这个之前,例如

<Route path="/file-manager/example" component={ExamplePage} />
<Route path="/file-manager/:folderName*" component={LandingPage} />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章