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

在FormatJS/React-intl的消息中能否实现if/else条件判断逻辑?

FormatJS条件逻辑实现说明

FormatJS支持你需要的条件消息定义能力,它基于标准ICU消息格式实现,你可以使用select语法完成布尔值的分支判断,具体实现方式如下:

1. 调整消息定义写法

你只需要把消息字符串按ICU select语法改写即可:

// message string
message = "{isDay, select, true {Day} other {Night}}";

2. React组件用法无需改动

原来的FormattedMessage调用方式保持不变,直接传入isDay布尔值即可:

<FormattedMessage
 id="message"
 values={{isDay: true}}
/>

语法说明

  • 第一个参数为你要做判断的变量名,这里是isDay
  • 第二个参数固定为select,代表启用分支选择逻辑
  • 后面依次列出匹配值对应的文案,true {Day}表示当isDay为true时输出Day
  • other {Night}为兜底分支,会匹配所有未明确列出的情况,正好对应isDay为false的场景

如果后续你需要处理更多状态的分支,只要在select后追加对应的匹配项即可,示例:

message = "{orderStatus, select, success {订单支付成功} pending {订单支付中} cancel {订单已取消} other {订单状态未知}}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:36:03