我目前正在实现网站用户认证,尝试限制已登录用户访问登录和注册页面。为此,我正在实现此 getServerSideProps
,以便在用户已登录时将其重定向:
export async function getServerSideProps(context) {
if (context.req.cookies.user) {
return {
redirect: {
destination: '/',
permanent: true,
},
}
}
return {}
}
如果我返回一个空对象 (
{}
),next 会给我这个错误:Reason: Props must be returned as a plain object from getServerSideProps: `{ props: { ... } }` (received: `[object Array]`).
如果我返回的不是
{}
,而是{
props: {}
}
这段代码运行正常,有人知道为什么会发生这种情况吗?
我正在使用自定义的_app.jsx
文件。
{ props: {}}
。也许他们的意思是props
对象的内容是可选的?你可以在 Github 上创建一个问题。 - tromgyprops
、redirect
或notFound
中的一个。在 OP 的情况下,由于他不想重定向或返回 404,所以必须返回props
。请参阅以下答案:https://dev59.com/gsPra4cB1Zd3GeqPgHFm#70823242。 - juliomalves