javascript - Next.js Router.push 没有设置任何 req.headers
问题描述
从另一个端点执行客户端 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('/') 时,标题是未定义的。这里发生了什么以及如何在上下文中将标头提供给我的请求对象?
解决方案
使用 Router.push 时没有请求。它是一个客户端 API,请求只存在于初始服务器渲染中。
推荐阅读
- excel - 如果单元格值包含特定字符串,则添加到列表框
- notepad++ - 使用 Notepad++ 搜索文件中的多个单词
- google-apps-script - 为什么代码格式损坏并且是错误的,不是很有帮助
- python - 比较两个 3d Numpy 数组并返回带有索引的不匹配值,然后在没有循环的情况下重新创建它们
- python-xarray - 无法将 csv 文件中的 1d 变量添加到 Xarray 数据集 - 错误?
- python - 读取文件时如何处理 UnicodeDecodeError?
- quarkus - 如果调用错误,Quarkus REST 服务返回空响应
- javascript - 将自定义js文件添加到cshtml
- javascript - 提高获取请求加载速度
- postgresql-11 - 在 Azure Database for Postgres 的 PaaS 产品中创建超级用户?