Next.js:Access request(ctx.req)in";getInitialProps";“自定义文档中的方法”_文件「;

Next.js:Access request(ctx.req)in";getInitialProps";“自定义文档中的方法”_文件「;,next.js,Next.js,我创建了一个空白的Next.js应用程序: npx create-next-app 我添加了一个自定义文档 据我所知,对于预呈现页面,ctx.req将是未定义的: “如果您有一个带有getInitialProps的自定义文档,请确保在假定页面为服务器端呈现之前检查是否定义了ctx.req。对于预呈现的页面,将不定义ctx.req。” 但另一方面,同一页也说: “Next.js会自动确定页面是静态的(可以预呈现),如果该页面没有阻塞数据要求。这是由于页面中没有getServerSideProps

我创建了一个空白的Next.js应用程序:

npx create-next-app
我添加了一个自定义文档

据我所知,对于预呈现页面,ctx.req将是未定义的:

“如果您有一个带有getInitialProps的自定义文档,请确保在假定页面为服务器端呈现之前检查是否定义了ctx.req。对于预呈现的页面,将不定义ctx.req。”

但另一方面,同一页也说:

“Next.js会自动确定页面是静态的(可以预呈现),如果该页面没有阻塞数据要求。这是由于页面中没有getServerSideProps和getInitialProps。”

由此我了解到,如果getInitialProps方法存在,那么页面将被视为不可预渲染,而不是服务器端渲染


我错过了什么?一旦我将getServerSideProps添加到pages/index.js,如何访问“\u document”?

中“getInitialProps”方法中的请求

export async function getServerSideProps() {
  const data = "myData";
  return { props: { data } };
}
Next.js确实在服务器端呈现页面,然后ctx.req在“\u document”中的“getInitialProps”方法中可用

ctx: {
  "pathname": "/",
  "query": {},
  "asPath": "/"
}
export async function getServerSideProps() {
  const data = "myData";
  return { props: { data } };
}