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

React中实现Flex组件:将对象数组数据成对放入容器

实现方案

1. 实现通用数组分组工具函数

先写一个可复用的数组分组函数,将原始项目数组按每2个元素为一组拆分:

const chunkArray = (arr, chunkSize) => {
  const chunks = [];
  for (let i = 0; i < arr.length; i += chunkSize) {
    chunks.push(arr.slice(i, i + chunkSize));
  }
  return chunks;
};

2. 在Home组件中嵌套渲染

用上述函数处理项目数据后,通过两层map完成渲染:外层遍历分组后的数组生成projectRow容器,内层遍历每组项目渲染Project组件。

import Project from './Project';

const Home = ({ projects }) => {
  // 将项目数组按每2个一组拆分
  const groupedProjects = chunkArray(projects, 2);

  return (
    <div className="projects">
      {groupedProjects.map((projectGroup) => (
        {/* 用组内项目id拼接作为key,避免index引发的渲染异常 */}
        <div key={projectGroup.map(p => p.id).join('-')} className="projectRow">
          {projectGroup.map((project) => (
            <Project key={project.id} project={project} />
          ))}
        </div>
      ))}
    </div>
  );
};

export default Home;

方案优势

  • 适配任意数量的项目数据,数组长度为奇数时,最后一组仅单个项目也会被正确包裹
  • 工具函数可复用在其他需要分组的场景
  • 使用项目唯一id作为key,符合React最佳实践,避免数组顺序变化导致的不必要重渲染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 19:11:03