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

如何将数组中嵌套的对象数据渲染为key1、key2为表头的表格?

问题原因

你用Object.entries处理外层的this.state.message对象是错误的:外层对象包含Items/Count/ScannedCount三个属性,Object.entries转换后得到的是[['Items', 数组], ['Count', 4], ['ScannedCount', 4]]的键值对数组,每一项根本没有key1属性,自然取不到值。你需要的数据源是this.state.message.Items这个存放实际业务数据的数组,不需要额外做Object.entries转换。

修复后代码(实现key1、key2为表头的表格)

render() {
  console.log(this.state.message); 
  // 直接取Items数组作为数据源,加空数组兜底避免报错
  const dataList = this.state.message.Items || [];
  return (
    <div>
      <div className="viewall">
        {/* 标准表格结构 */}
        <table border="1" style={{borderCollapse: 'collapse', width: '100%'}}>
          {/* 表头 */}
          <thead>
            <tr>
              <th>key1</th>
              <th>key2</th>
            </tr>
          </thead>
          {/* 数据行 */}
          <tbody>
            {dataList.map((data, index) => {
              return (
                <tr key={index}>
                  <td>{data.key1}</td>
                  <td>{data.key2}</td>
                </tr>
              );
            })}
          </tbody>
        </table>
      </div>
    </div>
  );
}

补充说明

如果你的key1字段值是全局唯一的,建议把key={index}替换为key={data.key1},可以提升React列表渲染的性能。表格的边框、间距样式可以根据自己的需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:15:03