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

React中用for循环在div内渲染组件报错,求解决方法

React循环渲染组件报错的解决方法

错误原因

JSX语法中只能嵌入表达式,不能直接放置for这类语句,你直接在<div>里写(for (var i=0; i <4; i++) {<StarIcon />})属于语法违规,所以触发了"Unexpected token"的解析错误。

可行解决方案

下面是几种重复渲染<StarIcon />4次的正确写法:

方法1:用Array.from生成数组后map渲染

<div>
  {Array.from({ length: 4 }, (_, index) => (
    <StarIcon key={index} />
  ))}
</div>

Array.from({ length: 4 })会创建一个长度为4的数组,通过map遍历数组,每次返回一个<StarIcon />组件,key是React列表渲染必须的标识,这里用数组索引即可。

方法2:先通过for循环生成组件数组,再嵌入JSX

// 先在组件逻辑里生成数组
const starComponents = [];
for (let i = 0; i < 4; i++) {
  starComponents.push(<StarIcon key={i} />);
}

// 在JSX中渲染数组
<div>{starComponents}</div>

先把需要重复的组件通过for循环存入数组,再将整个数组嵌入JSX,因为数组属于表达式,符合JSX语法要求。

方法3:用Array.fill结合map渲染

<div>
  {Array(4).fill(null).map((_, index) => (
    <StarIcon key={index} />
  ))}
</div>

Array(4)创建长度为4的空数组,fill(null)填充后才能正常使用map(空数组的map不会执行),之后遍历渲染组件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:53:16