javascript - 在我的 JSX 中放置一个条件语句

标签 javascript reactjs jsx

<li className=`nav-item {(this.props.activeState===1) ? "active":""}`><a href="#">Main</a></li>

^ 这是我的代码。如果满足条件,我希望类名“active”出现在“nav-item”旁边。我以为放反引号可以让我一起使用文本和代码,但我收到一个错误 - JSX 值应该是表达式或引用的 JSX 文本

我该如何正确执行此操作?

最佳答案

您需要使整个模板字符串成为 JSX prop 表达式:

<li className={`nav-item ${(this.props.activeState === 1) ? "active": ""}`}>
  ...
</li>

使用变量可能更简洁:

const activeClass = (this.props.activeState === 1) ? "active": "";
// ...
<li className={`nav-item ${activeClass}`}>
  ...
</li>

关于javascript - 在我的 JSX 中放置一个条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45527886/

相关文章:

reactjs - 使用 Redux Thunk 和 Axios 测试 Action Creator

reactjs - 虚拟化列表 : You have a large list that is slow to update

javascript - Typescript/JSX - 通过引用分配一个类的实例

javascript - react this.props.title 为空!!为什么?

javascript - 使用 Cookie 保存 JQuery 切换状态

javascript - 子菜单不与侧面父元素重叠

javascript - 在 React Component 中需要某种类型的 child

javascript - react : update a field value based on another field in dynamically generated form

javascript - react ;无法读取 render > return() 内未定义的属性

javascript - 如何在 MacBook、PC、IOS 和 android 中通过 javascript 代码检测访问者浏览器