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

如何在React JS和MUI组件中将二维数组映射为卡片矩阵?

二维数组转卡片矩阵的修复方案

你的问题出在没处理二维数组的嵌套结构:当前代码只遍历了外层数组,每次拿到的obj其实是内层的子数组(比如[obj1,obj2,obj3]),子数组本身没有id和text属性,自然无法正确渲染卡片。另外还有两个细节错误:外层<Grid>缺少container属性(Material UI Grid布局的必要配置),组件名assetCard没有首字母大写(React组件必须大写开头)。

修正后的代码如下:

export default function Content() {
  return (
    <Grid container>
      {DUMMY_DATA.map((row, rowIndex) => (
        <>
          {row.map((obj) => (
            <Grid item sm={4} sx={{ m: 1 }} key={obj.id}>
              <AssetCard 
                id={obj.id}
                name={obj.text}
              />
            </Grid>
          ))}
        </>
      ))}
    </Grid>
  );
}

关键修正点:

  • 外层<Grid>添加container属性:启用Material UI的网格布局逻辑,让子元素按列宽规则排列。
  • 嵌套两层map:外层遍历二维数组的每一行,内层遍历每行中的单个对象,确保每个对象都能生成对应的卡片。
  • 组件名改为AssetCard:React要求组件名必须首字母大写,否则会被识别为原生HTML标签。
  • 合理设置key:内层用对象的唯一id,外层用行索引rowIndex(如果每行没有专属唯一标识的话),符合React的列表渲染规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:20:41