我正在尝试使用 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
答案 0 :(得分:0)
您需要对 URI 参数进行解码和编码。路由器会自动为您编码查询参数:
encodeURIComponent('cats,dogs')
// "cats%2Cdogs"
阅读时需要解码:
decodeURIComponent("cats%2Cdogs")
"cats,dogs"