[英]Conditional redirection in Next.js
是否可以根據cookie值有條件地將用戶重定向到另一個Url? 我知道我可以檢查服務器上的cookie然后重定向。 但是,如果用戶通過Link
我該怎么辦? (我不能使用Route.push,因為它在服務器上未定義)有沒有辦法只在瀏覽器上使用路由器?
我知道至少有一種方法可以做到這一點:創建簡單的button
並在onClick
處理程序中添加路由器推送和檢查cookie,但這是一種正確的方法嗎?
您可以檢查用戶是否通過服務器或客戶端訪問了該頁面。 之后,您可以使用適當的工具有條件地重定向。 getInitialProps
函數獲取一個ctx
對象。 你可以檢查它在服務器或客戶端是否像這樣:
import Router from 'next/router'
export default class Browse extends Component {
static async getInitialProps (ctx) {
if (ctx && ctx.req) {
console.log('server side')
ctx.res.writeHead(302, {Location: `/`})
ctx.res.end()
} else {
console.log('client side')
Router.push(`/`)
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.