react 逻辑 AND 运算符 (&&)

2024-05-14 1401阅读

在 React 组件中,当你想在条件为 true 时渲染一些 JSX 时,它经常会出现,或者什么都不渲染。使用 ,只有在以下情况下才能有条件地呈现复选标记:&&isPackedtrue

react 逻辑 AND 运算符 (&&)
(图片来源网络,侵删)
return (
  
  • {name} {isPacked && '✔'}
  • );

    您可以将其理解为“if isPacked, then (&&) render the checkmark, else , render nothing ”

    这是在行动:

    function Item({ name, isPacked }) {
      return (
        
  • {name} {isPacked && '✔'}
  • ); } export default function PackingList() { return (

    Sally Ride's Packing List

      ); }

      如果 JavaScript 的左侧(我们的条件)为 ,则 JavaScript && 表达式返回其右侧的值(在本例中为复选标记)。但是如果条件是 ,则整个表达式变为 。React 将其视为 JSX 树中的一个“洞”,就像 或 一样,并且不会在其位置上渲染任何东西。truefalsefalsefalsenullundefined

      不要将数字放在 &&. 的左侧。

      为了测试条件,JavaScript 会自动将左侧转换为布尔值。但是,如果左侧是 ,那么整个表达式都会得到该值 (),并且 React 会很乐意渲染而不是什么都没有。000

      例如,一个常见的错误是编写类似 .很容易假设它在 is 时什么都不渲染,但它确实渲染了它本身!messageCount &&

      New messages

      messageCount00

      要修复它,请将左侧设为布尔值:。messageCount > 0 &&

      New messages

       

       

      有条件地将 JSX 分配给变量

      当快捷方式妨碍编写纯代码时,请尝试使用语句和变量。您可以重新分配使用 let 定义的变量,因此首先提供要显示的默认内容,即名称:if

       
           
           let itemContent = name; 
           
          
         
        
       
      

      使用语句将 JSX 表达式重新赋值给 if :ifitemContentisPackedtrue

       
           
           if (isPacked) { 
           
           
           itemContent = name + " ✔"; 
           
           
           } 
           
          
         
        
       
      

      大括号打开“JavaScript 之窗”。在返回的 JSX 树中嵌入带有大括号的变量,将先前计算的表达式嵌套在 JSX 中:

       
           
           
    • {itemContent}
    • 这种风格是最冗长的,但也是最灵活的。这是在行动:

      function Item({ name, isPacked }) {
        let itemContent = name;
        if (isPacked) {
          itemContent = name + " ✔";
        }
        return (
          
    • {itemContent}
    • ); } export default function PackingList() { return (

      Sally Ride's Packing List

        ); }
        VPS购买请点击我

        免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

        目录[+]