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

ReactJS中for循环触发分号解析错误,该如何解决?

React JSX中for循环报错的解决方法

你遇到的Parsing error: Unexpected token是因为JSX只能包含表达式,不能直接放置for循环这类语句。JSX的渲染区域(<>和</>之间)只接受能返回值的表达式,而for循环是控制流语句,不符合这个要求。

下面是两种可行的解决方法:

方法一:使用数组map方法(React推荐方式)

这是React中遍历数组渲染元素的标准做法,直接通过map生成JSX元素数组:

const resume = {
  interest: ['Drawing','Photography','Design','Programming','Computer Science'],
  skills: ['Web Design with React'],
  education: ['Wilton High School','Silvermine School of Arts','Codeacademy'],
  experience: ['Student Technology Intern for Wilton School','Babysitter'],
  extracurriculas: ['Recycling Club','Gardening Club','Book Club']
}

function App() {
  return (
    <>
      {resume.interest.map((interestItem, index) => (
        <h1 key={index}>{interestItem}</h1>
      ))}
    </>
  )
}

export default App;
  • map方法会遍历数组,为每个元素返回一个<h1>节点,最终生成一个JSX元素数组,放在{}中即可被JSX解析渲染。
  • key属性是React要求的必填项,用来帮助React识别元素的唯一性,避免渲染异常。如果数组元素有唯一ID,优先用ID当key,这里用index作为临时方案。

方法二:提前用for循环生成JSX数组

如果一定要使用for循环,可以先在组件函数内部生成JSX元素数组,再在返回的JSX中渲染这个数组:

const resume = {
  interest: ['Drawing','Photography','Design','Programming','Computer Science'],
  skills: ['Web Design with React'],
  education: ['Wilton High School','Silvermine School of Arts','Codeacademy'],
  experience: ['Student Technology Intern for Wilton School','Babysitter'],
  extracurriculas: ['Recycling Club','Gardening Club','Book Club']
}

function App() {
  const interestElements = [];
  const interestLength = resume.interest.length;
  
  for (let index = 0; index < interestLength; index++) {
    interestElements.push(<h1 key={index}>{resume.interest[index]}</h1>);
  }

  return (
    <>
      {interestElements}
    </>
  )
}

export default App;
  • 先通过for循环把每个<h1>元素存入数组,再将数组作为表达式放在JSX中,这样就符合JSX的语法规则了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:52:54