【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>

相关推荐
ZC跨境爬虫25 分钟前
跟着 MDN 学 HTML day_33:(Attr 接口与属性节点的深入理解)
前端·javascript·ui·html·音视频·html5
神所夸赞的夏天39 分钟前
如何获取多层json数据,存成dictionary,并取最大最小值
java·前端·json
红色的小鳄鱼39 分钟前
前端面试js手写
开发语言·前端·javascript
焦糖玛奇朵婷43 分钟前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
上海云盾王帅1 小时前
WEB业务如何接入安全防护:从零到一的实战指南
前端·安全
用户059540174461 小时前
AI Agent记忆丢失踩坑实录:这个问题让我排查了3天
前端·css
web行路人1 小时前
前端对Commands(斜杠命令)一些常用
前端·javascript·vue.js·vue
Rhi6371 小时前
第 2 篇|吐槽向:那些年我们配过的环境,这次终于能跑起来了
react.js·github
当时只道寻常1 小时前
从零到一打造企业级全栈后台管理系统 —— 技术选型、工程化实践与深度思考
前端·全栈·前端工程化
竹林8181 小时前
用 ethers.js 连 MetaMask 做钱包登录,我踩了三个坑才搞定跨页面状态同步
前端·javascript