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> ))}
关键修正点
- 隐式返回JSX:将map回调的大括号
{}改为小括号(),无需手动写return,自动返回内部JSX结构 - 移除多余分号:删除JSX标签后的不必要分号,避免语法报错
- 完善可访问性:给img标签添加有意义的alt文本(这里使用
item.name),符合网页可访问性规范
内容的提问来源于stack exchange,提问作者user 1997
相关产品推荐
相关产品推荐

