NextJS Router.push 解码

时间:2020-12-22 22:41:47

标签: javascript react-router next.js

我正在尝试使用 router.push 进行重定向以传递查询字符串,但是当我尝试在我的参数中传递一个带有特殊字符的值时,因为逗号正在对我的 url 进行编码,是否可以将 ',' 传递到使用 router.push 的网址?

我尝试了很多东西,但我不知道如何让它发挥作用。

router.push({
  pathname: router.pathname,
  query: { ...router.query, pets: 'cats,dogs'},
})

生成的 url 将是 myurl?pets=cats%2Cdogs 我希望它是 myurl?pets=cats,dogs

1 个答案:

答案 0 :(得分:0)

您需要对 URI 参数进行解码和编码。路由器会自动为您编码查询参数:

encodeURIComponent('cats,dogs')
// "cats%2Cdogs"

阅读时需要解码

decodeURIComponent("cats%2Cdogs")
"cats,dogs"