Javascript Next.js中的条件重定向

Javascript Next.js中的条件重定向,javascript,reactjs,server-side-rendering,nextjs,Javascript,Reactjs,Server Side Rendering,Nextjs,是否可以基于cookie值有条件地将用户重定向到另一个Url? 我知道我可以检查服务器上的cookie,然后重定向。 但是如果用户通过链接,我该怎么办呢。(我无法使用Route.push,因为它在服务器上未定义) 有没有办法只在浏览器上使用路由器 我知道至少有一种方法可以做到这一点:创建简单的按钮并在onClick处理程序中添加路由器推送和检查cookie,但这是正确的方法吗?您可以检查用户是否通过服务器或客户端访问了页面。 之后,您可以使用适当的工具有条件地重定向。 getInitialPro

是否可以基于cookie值有条件地将用户重定向到另一个Url? 我知道我可以检查服务器上的cookie,然后重定向。 但是如果用户通过
链接
,我该怎么办呢。(我无法使用Route.push,因为它在服务器上未定义) 有没有办法只在浏览器上使用路由器


我知道至少有一种方法可以做到这一点:创建简单的
按钮
并在
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(`/`)
        }
...

除非你真的确定,否则避免301。使用302进行临时移动。