【React】条件渲染——逻辑与&&运算符

条件渲染------逻辑与&&运算符

你会遇到的另一个常见的快捷表达式是 JavaScript 逻辑与(&&)运算符。在 React 组件里,通常用在当条件成立时,你想渲染一些 JSX,或者不做任何渲染。

javascript 复制代码
function Item({ name, isPacked }) {
  return (
    <li className="item">
      {name} {isPacked && '✔'}
    </li>
  );
}

export default function PackingList() {
  return (
    <section>
      <h1>Sally Ride 的行李清单</h1>
      <ul>
        <Item 
          isPacked={true} 
          name="宇航服" 
        />
        <Item 
          isPacked={true} 
          name="带金箔的头盔" 
        />
        <Item 
          isPacked={false} 
          name="Tam 的照片" 
        />
      </ul>
    </section>
  );
}

运行结果

当 JavaScript && 表达式 的左侧(我们的条件)为 true 时,它则返回其右侧的值(在我们的例子里是勾选符号)。但条件的结果是 false,则整个表达式会变成 false。在 JSX 里,React 会将 false 视为一个"空值",就像 null 或者 undefined,这样 React 就不会在这里进行任何渲染。

⚠️注意:

切勿将数字放在 && 左侧.

JavaScript 会自动将左侧的值转换成布尔类型以判断条件成立与否。然而,如果左侧是 0,整个表达式将变成左侧的值(0),React 此时则会渲染 0 而不是不进行渲染。

例如,一个常见的错误是 messageCount && <p>New messages</p>。其原本是想当 messageCount 为 0 的时候不进行渲染,但实际上却渲染了 0。

为了更正,可以将左侧的值改成布尔类型:messageCount > 0 && <p>New messages</p>

相关推荐
vivo互联网技术13 小时前
深度解析悟空系统多机房部署共线改造
前端·npm·多语言·共线改造·多机房
JYeontu13 小时前
程序员都该掌握的“质因数分解”
前端·javascript·算法
薛定谔的算法13 小时前
有了HTML、CSS、JS为什么还需要React?
前端·javascript·react.js
方安乐13 小时前
react之shadcn(一)
前端·react.js·前端框架
阿珊和她的猫13 小时前
优化过多并发请求的技术策略
前端·javascript·vue.js
阿里云云原生13 小时前
Agent 越用越聪明?AgentScope Java 在线训练插件来了!
前端·agent
fengci.13 小时前
ctfshow渔人杯
前端
holeer13 小时前
【V1.0】Typora 中的 HTML 支持|软件文档自翻译
前端·编辑器·html·typora·web·markdown·文档
敲代码的小吉米13 小时前
JS两种复制到剪贴板的方法
前端·javascript
NEXT0613 小时前
React 核心揭秘:虚拟 DOM 原理与 Diff 算法深度解析
前端·react.js·面试