react路线参数自动解码字符串

IT技术 reactjs react-router
2021-05-19 01:13:19

嗨,react router params 会自动解码字符串吗?

例如我有这条路线

<Route path="/callback/:url"/>

当我用 C5jb20%3D

C5jb20=当我 console.log() 该参数时它会打印

这是预期的行为吗?我可以改变这种行为,以便我仍然得到编码的字符串吗?

谢谢!

1个回答

C5jb20%3D是一个 URL 编码字符串,它是一种对 URL 中的特殊字符进行编码的方法。例如,如果您有一个 URL 参数,例如?redirect=/some/path,服务器可能会将正斜杠解释为路由路径,并弄乱预期的路由。这就是为什么您会?redirect=%2Fsome%2Fpath在 URL 中看到诸如和您的示例之类的内容。

window.location.path 将具有原始的、未编码的 URL。

您也可以通过以下方式取回encodeURIComponent

encodeURIComponent('C5jb20=') // "C5jb20%3D"

不过,您可能不想这样做,具体取决于您的用例。