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 的写法

相关推荐
We་ct2 分钟前
LeetCode 289. 生命游戏:题解+优化,从基础到原地最优
前端·算法·leetcode·矩阵·typescript
Jack___Xue14 分钟前
LangGraph学习笔记(六)---LangGraph ReAct应用
笔记·学习·react.js
jiayong2328 分钟前
Vue2 与 Vue3 核心原理对比 - 面试宝典
vue.js·面试·职场和发展
有诺千金37 分钟前
VUE3入门很简单(4)---组件通信(props)
前端·javascript·vue.js
2501_9447114338 分钟前
Vue-路由懒加载与组件懒加载
前端·javascript·vue.js
雨季6661 小时前
Flutter 三端应用实战:OpenHarmony “心流之泉”——在碎片洪流中,为你筑一眼专注的清泉
开发语言·前端·flutter·交互
换日线°1 小时前
前端3D炫酷展开效果
前端·3d
广州华水科技1 小时前
大坝变形监测的单北斗GNSS技术应用与发展分析
前端
Dontla1 小时前
浏览器localStorage共享机制介绍(持久化客户端存储方案)本地存储冲突、iframe、XSS漏洞、命名空间隔离
前端·网络·xss
●VON1 小时前
React Native for OpenHarmony:构建高性能、高体验的 TextInput 输入表单
javascript·学习·react native·react.js·von