从另一个端点执行客户端Router.push()后,我在getInitialProps函数中进行后端查询时遇到问题。
这是我的意思。在我的注册页面中,我调用Router.push('/')返回主页:
proceedToIndex = () => {
Router.push('/');
}
在我的“ /”页面中,我按以下方式调用getInitialProps:
static async getInitialProps (context) {
try {
if (context.req.headers.cookie) {
const resp = await getUser(context.apolloClient);
if (resp.data.getUser && resp.data.getUser.id) {
return { user: resp.data.getUser };
}
};
} catch(e) {
console.log(e);
}
return { user: undefined };
}
我以崩溃告终,无法为context.req.headers.cookie调用未定义的cookie。因此,当我执行Router.push('/')时,标头是未定义的。这是怎么回事?如何在上下文中将标头输入到我的请求对象中?
答案 0 :(得分:1)
使用Router.push时没有任何请求。这是一个客户端API,请求仅存在于初始服务器渲染中。