在使用 Next.js 的 getStaticProps 方法读取数据时,可能会遇到无法读取数据的问题。这通常是由于 API 路径不正确或 API 返回的数据格式不符合预期造成的。

常见问题:

  1. API 路径错误: 请确保你提供的 API 路径是正确的,并包含正确的协议和主机名。
  2. API 数据格式不符合预期: 确保 API 返回的数据格式与 getStaticProps 方法中解析的数据结构一致。

解决方案:

  1. 检查 API 路径: 仔细检查 API 的路径,并确保它与实际的 API 端点匹配。
  2. 检查 API 数据格式: 确保 API 返回的 JSON 数据格式与 getStaticProps 方法中解析的数据结构一致。

Next.js 10.0 以上版本的新写法:

在 Next.js 10.0 以上版本,建议使用 getStaticProps 方法的新写法,即将该方法定义为一个顶级异步函数,而不是将其作为一个 export 变量:

export async function getStaticProps() {
  // ...
}

示例代码:

export async function getStaticProps() {
  const res = await fetch('/api/total');
  const { totalPosts, numSorts } = await res.json();
  return {
    props: {
      totalPosts,
      numSorts,
    },
    revalidate: 60, // 每 60 秒重新生成静态页并更新数据
  };
}

其他提示:

  • 如果仍然无法解决问题,请提供更多代码和错误信息,以便我们更好地帮助你解决问题。
  • 可以使用浏览器开发者工具中的 Network 面板来查看 API 请求和响应,帮助你诊断问题。
Next.js getStaticProps 无法读取数据:路径、数据格式及新写法

原文地址: https://www.cveoy.top/t/topic/m9at 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录