使用百分比(%)登录react-router:id

时间:2017-12-06 16:25:56

标签: javascript reactjs react-router

我试图在react-router id中使用百分号。由于禁止在URI中使用%,我必须手动编码我的URI以便能够使用此百分号。因此,使用Link,我使用encodeURI函数对URI进行编码:

<Link to={`/r/${encodeURI(my_str_with_unencoded_percent_sign)}`} >

在我的网页的源代码中,我看到该链接使用的是%25,而不是%

然而,当点击链接时,我收到错误&#34; URIError:格式错误的URI序列&#34; (在我的代码的另一部分,我有一个 <Match pattern="/r/:id" …)。

我做错了什么?似乎在将传递给传递给react-router的parseParams函数之前解析了,它试图再次解码它,这会导致此错误。

我发现https://github.com/ReactTraining/history/issues/461https://github.com/ReactTraining/history/issues/461等问题,但我没有找到解决此问题的方法:如何在react-router中使用百分号:id?< / p>

1 个答案:

答案 0 :(得分:1)

以下是Recat-Training提供的URL Parameters示例的工作修改版本。

将以下内容粘贴到index.js中并对其进行测试以查看其是否有效。我打算为你提供一个代码盒,但是它们的内部路由有问题,即使用uri编码的%符号也会导致屏幕变黑...我在本地进行了测试,看起来很像魅力。

Class<T>