You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React读取对象内嵌套数组属性报TypeError undefined如何解决

错误根因

  • JavaScript 数组索引从0开始计数,你需要的第一条作业对应索引为0,而非代码中使用的1
  • 你提供的第一条测试课程Fundies 2的homework数组仅有1条数据,索引1对应的值为undefined,访问undefined的hwName属性就会触发你遇到的类型错误。

修复代码

直接把所有course.homework[1]替换为course.homework[0]即可,同时建议增加可选链操作符做兼容,避免后续出现无作业的课程时再次抛出错误,示例如下:

const formattedCourses = courses.map((course) => {
    // 取第一条作业,无作业时跳过渲染
    const firstHomework = course.homework?.[0];
    if (!firstHomework) return null;
    return (
      <Task
        // 组合课程编码和作业名作为key,避免不同课程作业重名导致的key冲突问题
        key={`${course.classCode}-${firstHomework.hwName}`}
        timeDue={firstHomework.timeDue}
        courseName={course.courseName}
        hwName={firstHomework.hwName}
        color={course.color}
      />
    );
  });

如果确认所有课程永远存在至少1条作业,可以简化为:

const formattedCourses = courses.map((course) => {
    return (
      <Task
        key={course.homework[0].hwName}
        timeDue={course.homework[0].timeDue}
        courseName={course.courseName}
        hwName={course.homework[0].hwName}
        color={course.color}
      />
    );
  });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:54:04