NextJs中getStaticProps未返回对象错误求助
解决Next.js getStaticProps未返回对象的错误
问题根源
- catch块无返回值:当API请求失败进入catch逻辑时,函数没有返回任何符合要求的对象,触发
getStaticProps function did not return an object错误。 - await与then混用:异步代码写法冗余,既用了await又嵌套then链,容易导致逻辑混乱。
修复方案
1. 确保函数始终返回对象
无论请求成功或失败,getStaticProps必须返回包含props的对象。在catch块中添加return语句,返回默认数据或错误状态。
2. 统一异步代码风格
去掉then链,只用await处理异步操作,让代码结构更清晰。
修正后的代码
export async function getStaticProps(context) { try { const res = await fetch(ApiLinks.players.all); const jsonResponse = await res.json(); const teamMembers = jsonResponse.data.teamMembers; const responsePlayers = teamMembers.players; const responseStaff = teamMembers.staff; return { props: { responsePlayers, responseStaff, }, }; } catch (err) { console.error(err); // 请求失败时返回空数组作为默认值,避免页面报错 return { props: { responsePlayers: [], responseStaff: [], }, }; } }
关键修改说明
- 拆分fetch请求和JSON解析为独立的await调用,代码逻辑更直观
- catch块添加return语句,保证函数始终返回符合Next.js要求的结构
- 优化变量命名(如
teamMembers),提升代码可读性和可维护性
内容的提问来源于stack exchange,提问作者raffgiga
相关产品推荐
相关产品推荐

