当前位置: 首页 > news >正文

React 条件渲染

开发环境:React+ts+antd

通常你的组件会需要根据不同的情况显示不同的内容。在 React 中,你可以通过使用 JavaScript 的 if 语句、&& 和 ? : 运算符来选择性地渲染 JSX。

例子
我们在满足 isPacked={true} 条件的物品清单旁加上一个勾选符号✔。

import React from "react";interface ListPro {name:string,isPacked:boolean,
}const Item:React.FC<ListPro> =({name,isPacked})=>{if (isPacked) {return <li className="item">{name}</li>;}return <li className="item">{name}</li>;
}const App: React.FC = () => {return (<div><h1>Sally Ride 的行李清单</h1><ItemisPacked={true}name="宇航服"/><ItemisPacked={true}name="带金箔的头盔"/><ItemisPacked={false}name="Tam 的照片"/></div>)
}
export default App;

在这里插入图片描述

此条件判断处可以使用三目运算,或者是与运算符(&&), 运行结果是一样的

return (<li className="item">{isPacked ? name + ' ✔' : name} </li>);
 return (<li className="item">{name} {isPacked && '✔'}</li>);

注意:切勿将数字放在 && 左侧.

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

例如,一个常见的错误是 messageCount &&

New messages

。其原本是想当 messageCount 为 0 的时候不进行渲染,但实际上却渲染了 0。

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

New messages

接下来我们给未完成的物品加上图标,当 isPacked 不为 true 时,使用条件运算符 (cond ? a : b) 来渲染 ❌

return (<li className="item">{isPacked ? name + '✔' : name + '❌'}</li>);

运行结果如下:
在这里插入图片描述

例子是参考React官方文档教程,不同的是我这里使用TS来写


http://www.mrgr.cn/news/97842.html

相关文章:

  • BOTA六维力矩传感器如何打通机器人AI力控操作的三层架构?感知-决策-执行全链路揭秘
  • python爬虫:小程序逆向实战教程
  • 蓝桥杯第十五届C++B组省赛真题解析
  • PDFBox/Itext5渲染生成pdf文档
  • React 响应事件
  • skynet.dispatch 使用详解
  • js 拷贝-包含处理循环引用问题
  • React十案例下
  • 如何在idea中快速搭建一个Spring Boot项目?
  • LeetCode Hot100 刷题笔记(8)—— 动态规划(一维、二维)
  • 前端三件套—CSS入门
  • WebGL数学手记:矩阵基础
  • React八案例上
  • python爬虫:DrissionPage实战教程
  • 柑橘病虫害图像分类数据集OrangeFruitDataset-8600
  • STM32——I2C通讯(软件模拟)
  • 探秘 Svelte+Vite+TS+Melt - UI 框架搭建,开启高效开发
  • PostgreSQL-数据库的索引 pg_operator_oid_index 损坏
  • SpringBoot 整合 MCP
  • JS 箭头函数