Next.js getStaticProps 无法读取数据:路径、数据格式及新写法
在使用 Next.js 的 getStaticProps 方法读取数据时,可能会遇到无法读取数据的问题。这通常是由于 API 路径不正确或 API 返回的数据格式不符合预期造成的。
常见问题:
- API 路径错误: 请确保你提供的 API 路径是正确的,并包含正确的协议和主机名。
- API 数据格式不符合预期: 确保 API 返回的数据格式与
getStaticProps方法中解析的数据结构一致。
解决方案:
- 检查 API 路径: 仔细检查 API 的路径,并确保它与实际的 API 端点匹配。
- 检查 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 请求和响应,帮助你诊断问题。
原文地址: https://www.cveoy.top/t/topic/m9at 著作权归作者所有。请勿转载和采集!