在下一个js中,我尝试更改路由而不刷新页面。
我使用的是我不喜欢的这种语法:
Router.push(
`/statistics?entityId=${id}&type=${entityType}&provider=${serviceProvider}`,
`/statistics?entityId=${id}&type=${entityType}&provider=${serviceProvider}`,
{
shallow: true
}
是否可以使用这种语法?
Router.push('/statistics', { countryCode: countryCode, country: selectedCountry }, { shallow: true });
答案 0 :(得分:1)
是的,但是语法有些不同。 Router.push
的第二个参数可以是string
或UrlObject
。
例如,如果您希望URL为/statistics?countryCode=1&country=US
,则可以像这样使用Router.push
进行浅层路由
Router.push('/statistics', {
query: {
countryCode: 1,
country: "US"
}
}, { shallow: true })
如果页面不是动态的,并且您想提供第一个参数为UrlObject
,包括pathname
,那么也可以实现相同的目的。例如,
Router.push({
pathname: "/statistics",
query: {
countryCode: 1,
country: "US"
}
}, undefined, { shallow: true })
您可以参考docs以获得更多详细信息。