【问题标题】:NextJS getStaticProps is not getting calledNextJS getStaticProps 没有被调用
【发布时间】:2021-11-13 18:46:53
【问题描述】:

我试图让getStaticProps 返回一些数据,但该函数从未被调用。我查看了官方文档和示例,并在 SO 上查看了各种答案,但仍然无法正常工作。

getStaticProps 中的console.log 从未运行这一事实让我认为我的代码存在配置错误,但我找不到问题的根本原因。

我的 apollo 客户端配置如下:

具有 ApolloClient 选项的constants 文件如下

我的组件如下,在useEffect console.log 命令日志undefined 中,我从来没有看到gerStaticProps 内部的console.log 命令被调用。

我还有一个自定义的_app 组件,如下所示:

我的文件夹结构如下:

我认为问题很可能出在我的_app.tsx 组件中,而this page from the official documentation 包含解决方案,但即使尝试了它,我也没有解决我的问题。

【问题讨论】:

  • 请将代码作为 sn-p 提供,不要不要使用图像作为代码。

标签: reactjs next.js apollo-client


【解决方案1】:

根据提供的信息,可能的原因有两个,

  1. getStaticProps 必须在页面中使用。检查您正在使用的文件是否是页面而不是组件。
  2. 文件结构可能导致问题。关注这个话题Is this Next.JS folder structure recommended?

【讨论】:

  • 我认为这与我在 index 文件中所做的导出有关。我刚刚在Pages 文件夹下创建了一个简单的组件(意思是一个tsx 文件,而不是包含其他文件的文件夹),它接收来自getStaticProps 的值。
  • 好的,nextJS 很可能没有将您的“主要”组件标识为页面。 getStaticProps 必须在 pages 文件夹中的文件上调用,而不是在从这些页面导入的组件上调用。
  • 是的,基本上我的/src/pages/index.ts 文件只是导出我的Main.tsx 组件。我做了它,所以它实际呈现它,然后将 getStaticProps 放在那里并且它可以工作。
猜你喜欢
  • 2021-11-03
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2020-11-05
  • 1970-01-01
  • 2020-09-17
  • 2021-10-20
相关资源
最近更新 更多