Nextjs:getStaticProps 中未定义的上下文
Posted
技术标签:
【中文标题】Nextjs:getStaticProps 中未定义的上下文【英文标题】:Nextjs: context undefined in getStaticProps 【发布时间】:2021-02-04 15:01:21 【问题描述】:来自 getStaticProps 的上下文未定义。
如果我 console.log 我得到的上下文:
locales: undefined, locale: undefined
我需要来自 url 的信息... 如果我对 getServerSideProps 进行同样的尝试,它就可以工作。 我正在使用带有 nextjs 的 apollo,例如:https://github.com/vercel/next.js/tree/canary/examples/with-apollo
export async function getStaticProps(context)
const apolloClient = initializeApollo();
await apolloClient.query(
query: PAGE,
variables: variables,
);
console.log(context);
// locales: undefined, locale: undefined
// !!! need the info from the URL !!!
return
props:
initialApolloState: apolloClient.cache.extract(),
,
revalidate: 1,
;
感谢任何帮助。
【问题讨论】:
【参考方案1】:context
对象上不存在这些参数,这就是你得到undefined
的原因。我假设您将它们作为查询参数传递给 url。在这种情况下,您可以像这样从上下文查询参数中获取它们:
const locales = context.query
在下一个文档中了解更多关于 context
对象的参数
https://nextjs.org/docs/api-reference/data-fetching/getInitialProps
【讨论】:
以上是关于Nextjs:getStaticProps 中未定义的上下文的主要内容,如果未能解决你的问题,请参考以下文章
NextJS:通过上下文将字符串从输入传递到 getStaticProps
如何在 NextJS 中为 getStaticProps 导入 API 路由?
为啥 NextJS 中的 ApolloGraphQL 示例使用 getStaticProps 而不是 getServerSideProps
Nextjs:getStaticProps 中未定义的上下文