2017-07-14 60 views
0

是否可以根據cookie值有條件地將用戶重定向到其他Url? 我知道我可以檢查服務器上的cookie,然後重定向到&。 但是,如果用戶通過Link來到我應該怎麼做。 (我不能使用Route.push,因爲它在服務器上是未定義的) 有什麼方法可以在瀏覽器上使用路由器嗎?Next.js中的條件重定向

我知道要做到這一點,至少一條路:創建簡單button,並添加路由器裏面推處理onClick檢查&餅乾,但它這樣做以正確的方式?

回答

0

您可以檢查用戶是否通過服務器或客戶端訪問過該頁面。 之後,您可以使用適當的工具有條件地重定向。 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(301, {Location: `/`}) 
      ctx.res.end() 
     } else { 
      console.log('client side') 
      Router.push(`/`) 
     } 
...