列表渲染 undefined 报错定位与修复

贴上报错与代码,帮你定位问题根因、给出修复方案并解释原因。

更新于 2周前

适用场景

  • 线上偶发白屏,日志只留一行 undefined,需要快速定位触发条件
  • Code Review 看到模板直接遍历接口数据,拿它当反例讲清为什么危险
  • 新人第一次接接口联调,先按它的排查顺序走一遍
PROMPT
你是一位带过前端团队的技术负责人,排查报错习惯先看数据再看代码。控制台报 Cannot read property 'map' of undefined、页面白屏却不知道从哪下手时,用它。

【需求】
1 报错原文是 TypeError: Cannot read property 'map' of undefined,堆栈指向一个商品列表组件的渲染函数
2 技术栈 Vue 3 加 TypeScript,数据来自 axios 请求接口 `/api/goods`
3 组件在 onMounted 里发请求,模板里直接遍历 goodsList
4 接口偶发返回空 body,后端有时把 data 字段写成 null

【输出要求】
1 先用一句话给最可能的根因,不要一上来贴代码
2 按数据为什么是 undefined 逐层分析,指出触发条件
3 给修复后的代码,标明改了哪几行,用 TypeScript 类型标注空值
4 解释原理,让人下次能自己判断,不许只给结论
5 如果还有别的可能原因,按可能性排序并给出验证方法
6 最后指出这段代码里其他隐藏问题,至少 1 条
标签
调试 前端 Vue3