javascript - 条件逻辑jsx react

标签 javascript reactjs ecmascript-6 jsx

我试图在 jsx View 中对 className 应用超过 1 个条件。然而它不会让我。

它只听第一个条件。

className={usernameFocus ? "toggled" : "" || usernameValidated ? "validated" : ""}

我尝试了几种组合:

className={usernameFocus ? "toggled" : "" + usernameValidated ? "validated" : ""}

如何完成多个条件来将 classNames 添加到我的元素?

最佳答案

您的操作顺序混淆了。将您的单独条件放在括号中。另外,您可以像这样缩短类评估:

className={(usernameFocus && "toggled") + " " + (usernameValidated && "validated")}

如果您觉得更奇特,您还可以使用模板字符串:

className={`${usernameFocus && "toggled"} ${usernameValidated && "validated"}`}

如果您经常这样做(多个 bool 值),请查看 Jed Watson 官方推荐的 classnames 模块。 Link .

有了它,你可以这样做:

var usernameClasses = classNames({
  'validated': usernameValidated,
  'toggled': usernameFocus
});

className={usernameClasses};

关于javascript - 条件逻辑jsx react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40006302/

相关文章:

javascript - 具有获胜条件的循环基本 Javascript 游戏

javascript - 如何从 sap.m.NavContainer 获取数据

javascript - 如何在 JavaScript ECMA6 中重载构造函数?

reactjs - 使用chart.js、react和es6渲染条形图

javascript - jQuery - 如何知道窗口是否正在调整宽度/高度或两者?

javascript - 未选中的复选框列表

reactjs - React Native SectionList 替换数据键

css - 在 Office UI Fabric 中设置 `PivotItem` 的宽度

javascript - 按设定的时间间隔使用数组中的随机字更新组件状态(和 UI)

javascript - 这是使用 ES6 最有效地查找因子而无需循环的方法吗?