首页 > 解决方案 > 使用路径(带有“/”)作为 URL 中的参数

问题描述

我正在使用 React Router v6 (Beta) 并且需要允许路径作为参数,例如。

"some-url/:folderPath" -> "some-url/some/path/to/a/folder"

事实证明,这比我预期的要棘手,尽管我认识到斜杠是 URL 分隔符引起的明显混淆。我发现这个答案表明在某些时候 React Router 允许使用“+”,这将允许 URL 参数包含 URL 中该点之后的所有内容,尽管它似乎不再受支持。

有没有使用 React API 解决这个问题的明确方法?

标签: reactjsreact-routerreact-router-dom

解决方案


您可以使用 URL 编码对任何字符进行编码。正斜杠的编码是%2F. 如果你用%2F它替换所有的斜线应该可以。您还可以调用将对字符串进行 URL 编码的函数。

请参阅:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

编辑: 话虽如此,@Linda Paiste 的评论是一个出色的解决方案。


推荐阅读