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

三元条件运算符未按预期运行,仅PROCESSED生效IN_TRANSIT不生效

错误原因

你写的三元运算判断逻辑存在逻辑运算符使用错误:
item?.orderItemStatus?.name === ('PROCESSED' || 'IN_TRANSIT') 这段代码里,('PROCESSED' || 'IN_TRANSIT') 不会按照你预期的「匹配两个值中的任意一个」运行。

JavaScript 中逻辑或 || 的求值规则为:从左到右判断操作数的布尔真值,返回第一个为真的操作数,直接忽略后续所有操作数。
'PROCESSED' 是非空字符串,属于永久真值,因此整个括号内表达式的返回值永远是 'PROCESSED',你的判断条件实际等价于 item?.orderItemStatus?.name === 'PROCESSED',自然只有状态为PROCESSED时才会渲染组件。

修复方案

你可以任选以下两种方案修改:

  • 分开写两个全等判断,用逻辑或连接:
{item?.orderItemStatus?.name === 'PROCESSED' || item?.orderItemStatus?.name === 'IN_TRANSIT' ? (
            <ReturnItemButton orderItem={item} />
          ) : null} 
  • 用数组的includes方法实现多值匹配,后续新增状态时修改更方便:
{['PROCESSED', 'IN_TRANSIT'].includes(item?.orderItemStatus?.name) ? (
            <ReturnItemButton orderItem={item} />
          ) : null} 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 14:48:03