我试图在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/461或https://github.com/ReactTraining/history/issues/461等问题,但我没有找到解决此问题的方法:如何在react-router中使用百分号:id?< / p>
答案 0 :(得分:1)
以下是Recat-Training提供的URL Parameters示例的工作修改版本。
将以下内容粘贴到index.js中并对其进行测试以查看其是否有效。我打算为你提供一个代码盒,但是它们的内部路由有问题,即使用uri编码的%符号也会导致屏幕变黑...我在本地进行了测试,看起来很像魅力。
Class<T>