You need to enable JavaScript to run this app. React JSX中如何用if/else条件渲染按状态切换激活/停用按钮
优惠活动
大模型
产品
解决方案
定价
更多

React JSX中如何用if/else条件渲染按状态切换激活/停用按钮

报错原因

  • 核心语法错误:JSX内使用三元条件运算符时,你遗漏了条件判断后必须的?符号,正确的三元运算符语法为条件 ? 真值返回内容 : 假值返回内容,你写的u.status == '0' (少了?,导致JSX解析失败。
  • 次要逻辑错误:else分支里的Tooltip提示文本还是写的"Deactivate",和你要实现的激活按钮逻辑不符。

修复方案

直接补充缺失的?,同时修正错误的Tooltip提示文本即可,修复后的完整代码如下:

{u.status == '0' ? (
  <Tooltip title="Deactivate">
    <IconButton 
      aria-label="Deactivate"
      color="primary"
      size="small"
      className={classes.deactivateButton}
      onClick={() => {handleDeactivate(u.groupsid)}}
    >  
      <HighlightOffIcon />
    </IconButton>
  </Tooltip>
):(
  <Tooltip title="Activate">
    <IconButton 
      aria-label="Activate"
      color="primary"
      size="small"
      className={classes.ActivateButton}
      onClick={() => {handleActivate(u.groupsid)}}
    >  
      <HighlightOffIcon />
    </IconButton>
  </Tooltip>
)}

如果觉得三元运算符可读性不佳,也可以用&&逻辑运算符拆分写法:

{u.status == '0' && (
  <Tooltip title="Deactivate">
    <IconButton 
      aria-label="Deactivate"
      color="primary"
      size="small"
      className={classes.deactivateButton}
      onClick={() => {handleDeactivate(u.groupsid)}}
    >  
      <HighlightOffIcon />
    </IconButton>
  </Tooltip>
)}
{u.status != '0' && (
  <Tooltip title="Activate">
    <IconButton 
      aria-label="Activate"
      color="primary"
      size="small"
      className={classes.ActivateButton}
      onClick={() => {handleActivate(u.groupsid)}}
    >  
      <HighlightOffIcon />
    </IconButton>
  </Tooltip>
)}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:24:00