react-jsx语法上使用switch匹配不同渲染组件

2023-11-06

这里主要讲的是jsx语法使用switch 的js语句

一般jsx语法执行的是简单的运算和三元表达式

如果想要执行条件判断如if语句和switch语句以及函数等 直接使用是会报错的

这里应该使用函数立即执行的语法写法,如果需要根据不同判断渲染不同组件也可以不要忘了return结果

例如:{(这里写函数)()}

{(()=>{这里可以写if,switch等})()}

项目代码实例

<Tabs defaultActiveKey="1" tabPosition={mode} style={{ height: '80vh' }}>
  {tabArr.map((v,i) => (
    <TabPane tab={`${v}`} key={i}>
      {(()=>{
        //   switch (key) {
        //       case value:
        //           break;
        //       default:
        //           break;
        //   }
        switch (i) {
            case 0:
              return <FormDay/>
            case 1:
              return <FormWeek/>
            case 2:
              return <FormMonth/>
            case 3:
             return <FormSpecial/>
            case 4:
              return  <FormSelf/>
            default:
              return null
          }
      })()}
    </TabPane>
  ))}
</Tabs>

注意switch内要用return 带有返回值:可以return一个组件,这样就可以实现了不同判断条件下返回不同组件界面元素

根据不同条件渲染不同组件 - switch.jsx

import './creat.less';
import React from 'react';
import { Tabs, Radio } from 'antd';

import FormDay from '../../component/form/formDay'
import FormWeek from '../../component/form/formWeek'
import FormMonth from '../../component/form/formMonth'
import FormSelf from '../../component/form/formSelf'
import FormSpecial from '../../component/form/formSpecial'
const { TabPane } = Tabs;
class Creat extends React.Component{
    constructor(props){
        super(props)
        this.state={ mode: 'top',}
    }

    componentDidMount(){
        //dom操作放在这里面  请求数据也建议放在这里
        console.log('04组件挂载完成')
        console.log(this.props)
    }
    handleModeChange = e => {
        const mode = e.target.value;
        this.setState({ mode });
      };
    render(){
        const { mode } = this.state;
        const tabArr = ['每天重复','每周重复','每月重复','特别日','自定义']
        return(
            <div>
             <Radio.Group onChange={this.handleModeChange} value={mode} style={{ marginBottom: 8,marginTop:8 }}>
                 <Radio.Button value="top">风格1</Radio.Button>
                <Radio.Button value="left">风格2</Radio.Button>
            </Radio.Group>
        <Tabs defaultActiveKey="1" tabPosition={mode} style={{ height: '80vh' }}>
          {tabArr.map((v,i) => (
            <TabPane tab={`${v}`} key={i}>
              {(()=>{
                switch (i) {
                    case 0:
                      return <FormDay/>
                    case 1:
                      return <FormWeek/>
                    case 2:
                      return <FormMonth/>
                    case 3:
                     return <FormSpecial/>
                    case 4:
                      return  <FormSelf/>
                    default:
                      return null
                  }
              })()}
            </TabPane>
          ))}
        </Tabs>
      </div>
        )
    }
}
export default Creat;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react-jsx语法上使用switch匹配不同渲染组件 的相关文章

随机推荐

  • MongoDB数据库常用SQL命令

    1 db collection updateMany 修改集合中的多个文档 db getCollection user find pId 3332a512df604a74a72f267cf246 updateMany pId c8018dd
  • ES6 数组的扩展方法

    1 数组的方法 from of from 将伪数组转换成真正的数组 function add console log arguments es5中 将参数转换成数组 let arr slice call arguments console
  • 时间序列--残差分析

    残差 y yhat 一般我们就停止在这里了 但是如果残差表现的有某种形式 代表我们的模型需要进一步改进 如果残差表现的杂乱无章 代表确实没什么别的信息好提取了 现在用最naive的model 上一个时间的值 yhat看看残差表现吧 关于残差
  • 初识QT(二十)——Qt元对象和属性系统详解

    Qt 是一个用标准 C 编写的跨平台开发类库 它对标准 C 进行了扩展 引入了元对象系统 信号与槽 属性等特性 使应用程序的开发变得更高效 本节将介绍 Qt 的这些核心特点 对于理解和编写高效的 Qt C 程序是大有帮助的 Qt 的元对象系
  • http协议 git服务器,利用Nginx搭建HTTP访问的Git服务器

    利用Nginx搭建HTTP访问的Git服务器过程记录 搭建 Git 仓库 实现 SSH 协议 配合 Nginx 实现 HTTP 协议拉取 推送代码 利用 Nginx 实现 Gitweb 在线浏览代码 使用 Gitweb theme 更新默认
  • Super Egg Drop

    题目 出处 参考的解法 class Solution public int superEggDrop int K int N int memo new int K 1 N 1 return helper K N memo private i
  • 在javascript中,slice与splice的区别

    介绍 众所周知 Javascript中的数组是能够保存多个值的变量 我们有多种方法来处理数组 其中最常用的是 slice 和 splice 有时人们会混淆这两者 因此 在本博客中 我们将了解这两种方法以及它们之间的区别 Slice slic
  • Linux网络编程-客户端与服务器端通信

    Linux网络编程 客户端连接服务器端让我们已经看到了client与server之间是如何建立连接的 接下来介绍它们之间如何建立tcp协议交互通信 先看看服务器端代码 tcpserver c include
  • 15个经典面试问题及回答思路,知乎上转疯了!

    一 简介 Handler机制是一套Android消息传递机制 在Android开发多线程的应用场景中 将工作线程中需更新UI的操作信息 传递到 UI主线程 从而实现 工作线程对UI的更新处理 最终实现异步消息的处理 在Android开发中
  • Linux 初始组(主组)和附加组详解

    Linux 初始组 主组 和附加组详解 介绍 在Linux系统中 每个用户都有一个主组和多个附加组 初始组 主组 是用户创建后默认分配的组 而附加组则可以根据需要进行添加或删除 本文将介绍Linux系统中初始组 主组 和附加组的方法 并探讨
  • tar.xz文件如何解压

    创建或解压tar xz文件的方法 习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar xz也会想用单一命令搞定解压或压缩 其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip j是针对 bzip2 创建tar
  • vue el-table 树形数据懒加载每次点击子集父级只展示一行

    功能需求 每次只打开一个同级数据节点展开 之前展开的自动收起 ps 找了好久都没有找到完全符合需求的组件 展示效果 vue el table 数据懒加载实现每次子集只展示一行 实现代码 模板 使用load配合expand change使用
  • IDEA创建SpringBoot无法连接https://start.spring.io

    解决办法 将网址改成 http start spring io
  • 小白学股票基金_4_ETF

    ETF Exchange Traded Funds 中文名称为交易型开放式指数基金 是一种在交易所上市交易的开放式指数基金 兼具股票 开放式指数基金及封闭式指数基金的优势 属于高效的指数化投资工具 也就是说 如果我们买一手科技ETF 就可以
  • Intellij IDEA使用技巧,去掉拼写检查和unused提示

    在setting里面搜索spell将其中的拼写检查的 号去掉 搜索never used 关键字将其中的unused的检查去掉
  • 模块化软件设计

    模块化的基本原理 模块化 Modularity 是在软件系统设计时保持系统内各部分相对独立 以便每一个部分可以被独立地进行设计和开发 这个做法背后的基本原理是关注点的分离 SoC Separation of Concerns 关注点的分离在
  • 第5天-[21天学Python]-Python中自定义函数及调用的方法

    本章内容主要包括 声明函数 调用自定义函数 变量作用域 各种类型的函数参数应用 使用lambda建立匿名函数 Python其他常用内建函数 1 使用函数 1 1 声明函数 在python中 函数必须先声明 然后才能调用它 使用函数时 只要按
  • Multisim14.0仿真(八)LM555制作流水灯

    一 仿真原理图 二 仿真运行效果
  • mysql-数据页结构

    数据页结构 数据删除后记录并没有马上被删除 而是被打上了删除标记 并被记录到一个垃圾链表中 之后若有新纪录来 它们则可能覆盖被删除的记录占用的存储空间 页内数据组成单向链表 且再次进行了分组 每组最后一条数据顺序存储在靠近页尾部的地方 这种
  • react-jsx语法上使用switch匹配不同渲染组件

    这里主要讲的是jsx语法使用switch 的js语句 一般jsx语法执行的是简单的运算和三元表达式 如果想要执行条件判断如if语句和switch语句以及函数等 直接使用是会报错的 这里应该使用函数立即执行的语法写法 如果需要根据不同判断渲染