React Router 不编码 & 符号,而是对路径参数中的空格进行编码

rea*_*tor 1 javascript reactjs react-router react-router-v4

我遇到了反应路由器编码空格的问题,但没有与符号的问题。所以localhost:8080/you & me被编码为localhost:8080/you%20&%20me而不是localhost:8080/you%20%26%20me,我正在使用一个奇怪的黑客来解码然后重新编码所有内容。我想知道是否有人可以推荐更好的解决方案。

tec*_*995 6

请勿在 URL 中使用非字母数字字符。某些字符(如&/?和 )=在 URL 中具有特殊含义。正如您所注意到的,尽管react-router在创建 url 中带有 a 的路由组件时不会抛出错误&,但最终会出现不稳定的行为。最佳实践是避免奇怪的边缘情况。您可以在此处阅读有关 url 中允许的字符的更多信息。

作为解决方法,您可以使用 实现几乎相同的 URL localhost:8080/you-and-me。这是一个安全的网址,没有空格和特殊字符。它也是人类可读的,任何带有空格的东西都不容易读取,因为它会被编码。