react 中的判断显示

正常比如说我有一个订单状态

我在vue中

可能 orderStatus == 1 已支付 orderStatus == 2 已提交 orderStatus == 3 已下单 orderStatus == 4 已发货

可能有这样的相关的显示 一个 tags

可能很简单

复制代码
                                    {/* <el-tag v-if="item?.signatureStatus == 1" size="small" type="primary">未签约</el-tag>
                                    <el-tag v-if="item?.signatureStatus == 2" size="small" type="primary">已提交</el-tag>
                                    <el-tag v-if="item?.signatureStatus == 3" size="small" type="primary">已签约</el-tag> */}

可能就是 v-if。v-else-if。v-else 的使用 特别明了 特别简单

但是在react 中就不是这样写了

这里面常用的是

1.三元表单式

复制代码
{status === 1 ? (
  <Tag bordered={false} color="default">未签约</Tag>
) : status === 2 ? (
  <Tag bordered={false} color="processing">签约中</Tag>
) : (
  <Tag bordered={false} color="success">已签约</Tag>
)}

2.逻辑与运算符

复制代码
{status === 1 && <Tag bordered={false} color="default">未签约</Tag>}
{status === 2 && <Tag bordered={false} color="processing">签约中</Tag>}
{status === 3 && <Tag bordered={false} color="success">已签约</Tag>}

我认为这个 逻辑与运算符 比较明了一些吧

3.立即执行函数

复制代码
{(() => {
  if (status === 1) {
    return <Tag bordered={false} color="default">未签约</Tag>
  } else if (status === 2) {
    return <Tag bordered={false} color="processing">签约中</Tag>
  } else {
    return <Tag bordered={false} color="success">已签约</Tag>
  }
})()}

因为 这个 if else 不是表达式 在这里写的话 需要使用函数的形式 返回

4.switch case

复制代码
{(() => {
  switch(status) {
    case 1:
      return <Tag bordered={false} color="default">未签约</Tag>
    case 2:
      return <Tag bordered={false} color="processing">签约中</Tag>
    case 3:
      return <Tag bordered={false} color="success">已签约</Tag>
    default:
      return <Tag bordered={false} color="default">未知</Tag>
  }
})()}

这个 和 if else 一样的道理

5.使用变量

复制代码
let statusTag
if (status === 1) {
  statusTag = <Tag bordered={false} color="default">未签约</Tag>
} else if (status === 2) {
  statusTag = <Tag bordered={false} color="processing">签约中</Tag>
} else {
  statusTag = <Tag bordered={false} color="success">已签约</Tag>
}

return (
  <div>
    {statusTag}
  </div>
)

也可以定一个变量 返回 标签 毕竟 react 是 jsx 的写法

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
A黄俊辉A3 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
liangshanbo12153 天前
React 性能瓶颈定位面试题——原理深挖版
react·performance·profiler
李少兄3 天前
JavaScript 隐式全局变量解析
javascript
honkun63 天前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table