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

JSX三元条件内嵌套map渲染出现': expected'报错怎么解决

报错原因

JSX中三元运算符的真值分支只能返回单个根节点,你直接在分类ListItem后拼接map生成的列表项数组,相当于真值分支同时返回了两个独立的JSX节点,语法解析时会认为三元的真值分支已经在</ListItem>处结束,后续找不到对应的:分隔符就抛出了异常。

解决方法

用React Fragment(短语法为<>...</>)将三元真值分支内的所有内容包裹为单个根节点即可,修改后的代码如下:

{finishedTodos
? 
  <>
    <ListItem button divider className={classes.finishCategory} >
      <ArrowForward className={classes.checkIcon} />
      <ListItemText primary={`Finished      ${finishedTodos.length}`}  style={{color:"tomato"}}/>
    </ListItem>
    {finishedTodos.map((todo) =>(     
      <ListItem button divider key={todo.id}> {/* 注意给map生成的列表元素加唯一key,无id可临时用索引代替 */}
        <CheckCircle className={classes.checkIcon} />
        <ListItemText primary={todo.title} style={{textDecoration:"line-through",color:"gray"}} />
      </ListItem>
    ))}
  </>
: null }

补充说明

如果你的项目React版本低于16.2,不支持Fragment短语法,可替换为<React.Fragment>...</React.Fragment>使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:45:03