SvelteKit:API数据获取正常但UI无法渲染问题排查
排查SvelteKit中UI无法渲染职业列表的问题
核心问题出在后端返回的数据结构和你预期的不一致:控制台能看到数据,但careers.length显示undefined,说明你赋值给careers的不是数组,而是一个包含数组的对象(比如后端返回{ data: [...] }或{ careers: [...] }这类结构)。
解决步骤:
- 确认数据结构:在
fetchCareers里,把console.log('Updated careers:', careers)改成console.dir(data),展开后查看后端返回的完整结构,找到真正存储职业列表的数组字段(比如data.data或data.careers)。 - 修正赋值语句:比如后端返回的数组在
data字段里,就把careers = data改成careers = data.data;如果在careers字段里,就改成careers = data.careers。 - 兜底处理(可选):为避免后端结构变化导致报错,可以加判断确保
careers始终是数组:careers = Array.isArray(data) ? data : (data?.careers || data?.data || []);
修改后,careers会变成真正的数组,length属性恢复正常,UI就能正确渲染职业名称列表了。
内容的提问来源于stack exchange,提问作者TheTaxReceivers
相关产品推荐
相关产品推荐

