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

Flow报错:IDE中JSX提示'unexpected token <',已包裹父标签仍存疑

解决JSX中"Unexpected token <"的语法错误

我一眼就揪出问题啦——你在<Roster>标签后面直接写的<---specifically refering to this element注释,完全违反了JSX的语法规则!

JSX里的注释不能像普通文本那样随意插入,必须用{/* 注释内容 */}的格式包裹起来。你现在写的<---...里的<符号会被JSX解析器当成新元素的起始标记,自然就抛出了"Unexpected token <"的错误,这跟<TableBody>父标签根本没关系哦。

修正后的完整代码

/* @flow */
import React from 'react'
import TableBody from '@material-ui/core/TableBody'
import Roster from './roster.jsx'
import type { MembersType } from '../../typeDefs/MembersType.js'

type RanksType = {
  _id: string | number,
  rankName: string,
  members: Array<MembersType>
};

export default (props: { members: Array<RanksType> }) => (
  <TableBody>
    {props.members.map(({ _id, rankName, members }: RanksType) => (
      {/* specifically refering to this element */}
      <Roster
        key={_id}
        rank={rankName}
        members={members}
      />
    ))}
  </TableBody>
)

额外的小修正提示

我还注意到你的Flow类型定义有个小疏漏:你声明props: { members: MembersType },但后面却调用了props.members.map——能调用map说明members是数组类型,所以我把它改成了Array<RanksType>,这样Flow的类型检查也能更准确~

最后再提醒下:以后写JSX注释时,一定要用{/* ... */}包裹,不管是在元素内部还是props之间都要遵守这个规则哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:42:02