【问题标题】:How can display pages with different states based on query parameters in next.jsnext.js中如何根据查询参数显示不同状态的页面
【发布时间】:2021-10-01 17:54:50
【问题描述】:

我想在 next.js 中根据不同的查询参数显示不同状态的页面,这样当用户使用带有查询参数的链接时,它不应该显示默认页面,而是基于状态。

为简单起见 将主页设为localhost:3000 这会呈现一些默认文本“Hello user” 如果用户输入localhost:3000/?name=JohnDoe 这应该会渲染 Hello JohnDoe。

我尝试过的事情。 我可以通过 next router 使用事件处理程序添加查询参数。 router.push('/?name=JohnDoe) 但是我不知道当用户使用带有查询参数的链接直接进入页面时设置状态的解决方案

【问题讨论】:

标签: next.js next-router


【解决方案1】:

您可以在 getServerSideProps 中访问查询,然后使用该查询重定向或做任何您想做的事情:

const getServerSideProps = (ctx) => {
   const {params} = ctx;
   
   if(params){
     return {
        redirect: {
        permanent: false,
        destination: "/login",
     }
   }
}

【讨论】:

  • 我没有使用 getServerSideProps,因为我想从组件而不是页面重定向。
  • @HussamKhatib with next js 你可以使用这个方法重定向到另一个页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 2019-02-02
相关资源
最近更新 更多