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

React设置按钮禁用状态:如何正确进行条件判断?

解决React按钮禁用状态的条件判断问题

你遇到的这个ESLint报错no-unneeded-ternary,本质是因为写了多余的三元表达式——其实!brush_logs_list.length本身就已经是一个布尔值了,完全不需要用? true : false再做一次无意义的转换。

最简正确写法

直接把条件表达式简化成下面这样即可:

<Button 
  variant="contained" 
  className="global-button" 
  disableElevation 
  disabled={!brush_logs_list.length} 
  onClick={applyForEntireMouth}
> 
  APPLY FOR ENTIRE MOUTH 
</Button>

逻辑说明

JavaScript会自动把数值转为布尔值:

  • 当brush_logs_list是空数组时,brush_logs_list.length等于0,!0会被转为true,按钮进入禁用状态;
  • 当数组存在内容时,brush_logs_list.length大于0,!取反后得到false,按钮保持可点击状态。

可选的更语义化写法

如果团队更偏好直白的逻辑表达,也可以写成明确的比较式,效果完全一致:

disabled={brush_logs_list.length === 0}

这种写法语义更清晰——“当数组长度为0时禁用按钮”,两种写法都能通过ESLint检查,选你觉得更易读的就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:13:11