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

如何在ReactJS中渲染嵌套对象数组内的tchStudents并解决对应报错

报错根因

你遇到的报错核心是两个问题:

  • 直接在JSX的{}中渲染了完整的学生对象,React仅支持渲染字符串、数字等基础类型值或合法的React元素,不支持直接渲染对象
  • 遍历tchStudents的逻辑有误,要么多了一层无意义的遍历导致返回嵌套数组,要么没有取到正确的学生属性渲染

解决方案

如果你的tchStudents是存储学生对象的一维数组(从你给出的Schema描述看大概率是这个结构),直接遍历该数组即可:

const { tchID, tchFirstName, tchLastName, tchStudents } = teacher; 

<tbody>
  <tr>
    <td>{tchID}</td>
    <td>{tchFirstName}</td>
    <td>{tchLastName}</td>
    <td>
      {/* 直接遍历学生数组,注意加唯一key属性 */}
      {tchStudents.map(student => (
        <p key={student._id}>{student.stdID}</p>
      ))}
    </td>
  </tr>
</tbody>

如果tchStudents确实是外层用对象包裹多组学生数组的嵌套结构,需要用flatMap扁平化遍历结果避免返回嵌套数组:

<td>
  {Object.keys(tchStudents).flatMap(groupKey => 
    tchStudents[groupKey].map(student => <p key={student._id}>{student.stdID}</p>)
  )}
</td>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:54:02