为何getServerSideProps返回undefined?代码调试求助
控制台输出undefined的问题修复
你的代码存在两个核心问题:
- 没有实际发起HTTP请求,仅将API地址赋值给
res变量,字符串类型不存在json()方法,导致users值为undefined - 未正确处理异步操作,
getServerSideProps是异步函数,但未使用await等待请求和解析完成
修复后的代码如下:
export default function Home({ data }) { console.log(data); return ( <div> <h2>Welcome !!</h2> </div> ); } export async function getServerSideProps() { // 发起HTTP请求获取数据 const res = await fetch("https://randomuser.me/api/?results=10"); // 等待JSON格式解析完成 const users = await res.json(); return { props: { data: users, }, }; }
修复说明:
- 用
fetch()方法替代字符串赋值,真正发起对目标API的请求 - 在
fetch和res.json()前添加await,保证异步操作执行完毕后再返回结果 - 调整后
data会正确接收API返回的有效数据,控制台将输出预期内容
内容的提问来源于stack exchange,提问作者webdev sakil
相关产品推荐
相关产品推荐

