You need to enable JavaScript to run this app. React嵌套数组执行map报Cannot read property 'map' of undefined如何解决
优惠活动
大模型
产品
解决方案
定价
更多

React嵌套数组执行map报Cannot read property 'map' of undefined如何解决

错误原因
  • 你的数据结构中number.s[0].l是数组类型,数组本身没有serial属性,你直接调用number.s[0].l['serial'].map()本质是对undefined调用map方法,自然触发报错。
  • serial是l数组内每个元素的属性,你需要先遍历l数组,再取每个元素的serial字段。
修复后代码
{this.state.serials.map((number, index) => { 
  return number.s && number.s.length ? ( 
    /* 多个同级JSX元素需要用React片段包裹,避免语法报错 */
    <React.Fragment key={index}>
      <h2>{number.s[0].za}</h2> 
      <ul> 
        {number.s[0].l.map((option, idx) => <li key={idx}>{option.serial}</li>)} 
      </ul> 
    </React.Fragment>
  ) : null 
})}
兼容性优化说明

如果数据可能存在l字段为空/未定义的情况,可以额外加一层判断,避免出现类似报错:

{number.s[0].l && number.s[0].l.length ? number.s[0].l.map((option, idx) => <li key={idx}>{option.serial}</li>) : null}

内容的提问来源于stack exchange,提问作者Nina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 08:57:01