Next.js Router.push没有设置任何req.headers

时间:2019-02-12 16:06:07

标签: javascript reactjs next.js

从另一个端点执行客户端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('/')时,标头是未定义的。这是怎么回事?如何在上下文中将标头输入到我的请求对象中?

1 个答案:

答案 0 :(得分:1)

使用Router.push时没有任何请求。这是一个客户端API,请求仅存在于初始服务器渲染中。