浅路由下一个js语法

时间:2020-06-17 13:52:54

标签: javascript reactjs next

在下一个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 });

1 个答案:

答案 0 :(得分:1)

是的,但是语法有些不同。 Router.push的第二个参数可以是stringUrlObject

例如,如果您希望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以获得更多详细信息。