javascript - 3 条件 - 三元条件链 JavaScript react

标签 javascript reactjs conditional-statements conditional-operator

所以我只是在玩瑞克和莫蒂 API,我从来没有用 3 个条件做过三元运算。 Mozilla 文档说你可以,但它对我不起作用。下面的代码显示了状态为绿色的字符,其余为紫色。我想活着是绿色,死了是红色,未知是紫色。如果有人好奇的话,我正在使用脉轮用户界面。我做错了什么?

<Badge
  colorScheme={ c.status === "Alive" ? "green"
      : "unknown" ? "purple"
      : "red"
  }
>
  {c.status}
</Badge>

最佳答案

您的符号混淆了。用括号分组,你的代码等同于

c.status === "Alive" ? "green"
      : ("unknown" ? "purple" : "red")

你需要的是

c.status === 'Alive'
  ? 'green'
  : c.status === 'unknown' ? 'purple' : 'red'

或者您可以改用查找表 - 它的可读性更高。

const colorsByStatus = {
  Alive: 'green',
  unknown: 'purple',
  dead: 'red'
};

// ...

colorSceme={colorsByStatus[c.status]}

关于javascript - 3 条件 - 三元条件链 JavaScript react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70553648/

相关文章:

javascript - 期待 'ID' ,得到 'NUMBER'

Javascript:将函数的输出与条件中的数组进行比较

python - 在 python 中连续检查具有许多正则表达式的字符串时缩进太多

reactjs - 从哪里导入 CognitoIdentityServiceProvider?

sql - 如何将 2 个 select 语句合并为一个?

javascript - 按值获取索引

javascript - 如何旋转谷歌图表中的标签?

javascript - Backbone.View 事件只触发一次

reactjs - typescript react HOC 仅将 ref 添加到 ComponentClass

reactjs - 在 websocket 回调中的 redux-saga 中调用 redux 操作 (stomp + sockjs)