是否可以根据 cookie 值有条件地将用户重定向到另一个 Url?我知道我可以检查服务器上的 cookie 然后重定向。但是,如果用户通过Link
. (我不能使用Route.push,因为它在服务器上未定义)有没有办法只在浏览器上使用路由器?
我至少知道一种方法:创建简单button
并在处理程序中添加路由器推送和检查 cookie onClick
,但这是正确的方法吗?
是否可以根据 cookie 值有条件地将用户重定向到另一个 Url?我知道我可以检查服务器上的 cookie 然后重定向。但是,如果用户通过Link
. (我不能使用Route.push,因为它在服务器上未定义)有没有办法只在浏览器上使用路由器?
我至少知道一种方法:创建简单button
并在处理程序中添加路由器推送和检查 cookie onClick
,但这是正确的方法吗?
您可以检查用户是否通过服务器或客户端访问了该页面。之后,您可以使用适当的工具有条件地重定向。
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(`/`)
}
...