我尝试在不重新加载页面的情况下使用router.push更改查询参数。我尝试按照nextjs文档的建议使用浅路由,但它不像预期的那样工作。应该注意的是,我使用的是动态路由。所以我的URL看起来像这样
http://localhost:3000/category/865/940/940?parentId=940
由于它是动态的,slug url看起来像这样
http://localhost:3000/category/[category]/[subCategory]/[productCat]?parentId=940
现在,当我尝试浅路由时,它添加了查询参数,但我的url变成了这样:
http://localhost:3000/category/[category]/[subCategory]/[productCat]?parentId=940&price=333
应该是这样的:
http://localhost:3000/category/865/940/940?parentId=940&price=333
我根据nextjs文档使用了shallow,例如:router.push("&price=sdds", undefined, { shallow: true,})
但它给了我一个奇怪的网址和刷新页面。
1条答案
按热度按时间jv4diomz1#
router.push
的用法对我来说似乎不正确。从文档中,语法是:-router.push(url, as, options)
。但是您将其用作
router.push("&price=sdds", undefined, { shallow: true,})
,而不是传递url
。你可以尝试下面的语法来添加新的查询参数到你现有的url(根据文档,
router.push
的第一个参数也可以是一个对象):