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

React数组映射渲染问题:按指定区域展示数组对象数据

问题描述

我有一个数据数组,想要通过map方法将数组对象中的name和desc渲染到left-section区域,video_url渲染到right-section区域,image渲染到下方的below-section区域。相关数据及当前代码如下:

数据定义

const data = [
  {
    id: 1,
    name: "DEFINE",
    desc: "Logicaldefine",
    video_url: "/assets/video/video.mp4",
    image: "/assets/images/AI.png",
  }
];

当前代码

{data.map((item, index) => {
            <div key={item.id}>
          <div className="left-section">
            <h2>{item.name}</h2>
            <p>{item.desc}</p>
            </div>
            <div className="right-section">
            <video width="500" height="300" autoplay muted>
              <source src={item.video_url} type="video/mp4" />
            </video>
            </div>;
            <div className="below-section">
            <img src={item.image} alt=""/>
            </div>
          </div>;
})}
修正方案

当前代码存在两个核心问题:

  • map回调函数未返回JSX元素,React无法识别并渲染内容
  • JSX结构中存在多余分号,会触发语法错误

以下是修正后的代码:

{data.map((item) => (
  <div key={item.id}>
    <div className="left-section">
      <h2>{item.name}</h2>
      <p>{item.desc}</p>
    </div>
    <div className="right-section">
      <video width="500" height="300" autoplay muted>
        <source src={item.video_url} type="video/mp4" />
      </video>
    </div>
    <div className="below-section">
      <img src={item.image} alt={item.name} />
    </div>
  </div>
))}

关键修正点

  1. 隐式返回JSX:将map回调的大括号{}改为小括号(),无需手动写return,自动返回内部JSX结构
  2. 移除多余分号:删除JSX标签后的不必要分号,避免语法报错
  3. 完善可访问性:给img标签添加有意义的alt文本(这里使用item.name),符合网页可访问性规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:49:56