簡體   English   中英

Next.js中的條件重定向

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM