我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React手写tab切换问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React手写tab切换问题

在这里插入图片描述

父文件


import React, { useState } from 'react';
// import Module1 from './Module1';
// import Module2 from './Module2';
// import Module3 from './Module3';
// import Module4 from './Module4';
import HeaderTtabs, { tagType } from '@/components/Task/Tree/Common/component/TabsContent/ListContent/HeadTabs';
import { divide } from 'lodash';

export default function (props: any) {

  const tabsList: tagType[] = [
    { name: 'xxx况' },
    { name: '培育xxxxx', disabled: false },
    { name: '关xxxx', disabled: false },
    { name: '科xxxx', disabled: false },
    { name: '人xxxx', disabled: false },
  ];
  const [checkedTag, setCheckedTag] = useState(tabsList[0])
  return (<div>
    <HeaderTtabs tabsList={tabsList} checkedTag={checkedTag} setCheckedMenu={(tab) => setCheckedTag(tab)} />
    <div className={`pt5 px20 pb20`}>
    {checkedTag.name === tabsList[0].name && <div>11</div>}
      {checkedTag.name === tabsList[1].name && <div>22</div>}
      {checkedTag.name === tabsList[2].name && <div>33</div>}
      {checkedTag.name === tabsList[3].name && <div>44</div>}
      {checkedTag.name === tabsList[4].name && <div>55</div>}
      {}
    </div>
  </div>);
}

子文件


import style from './index.scss';
import React from 'react';
import { message } from 'antd';

// 标签类型
export type tagType = {
  name: string, // 标签名称,唯一
  disabled?: boolean // 是否禁用
}


export default function(props: {
  tabsList: tagType[], // 标签列表
  checkedTag: tagType, // 当前选中的标签
  setCheckedMenu: (menu: tagType) => void // 标签点击回调
}) {
  const {tabsList, checkedTag, setCheckedMenu} = props
  const setCheck = (menu: tagType) => {
    if (menu.disabled) {
      message.warning('功能暂未开放');
      return
    }
    setCheckedMenu(menu)
  }
  return (<div className={`${style.tag_area} ${style.epidemic_area}`}>
    {
      tabsList.map((item) => (
        <div className={`${style.tag} ${checkedTag.name === item.name ? style.checked : ''} ${style.epidemic}`} key={item.name} onClick={() => setCheck(item)}>
          {item.name}
        </div>
      ))
    }
  </div>)
}

子文件-tab样式:

在这里插入图片描述


.tag_area {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -20px;
  background-color: #fff;
  margin-bottom: 20px;
  @media only screen and (max-width: 768px) {
    & {
      margin-top: 10px;
    }
  }
}

.tag {
  // flex: 1;
  // margin: 0 15px;
  min-width: 130px;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  height: 50px;
  color: #333;
  cursor: pointer;
  transition: .3s all;
  // box-shadow: 5px 3px 4px #999;
  font-size: 18px;
  // border-radius: 10px;
  border-radius: 6px 6px 0px 0px;
  @media only screen and (max-width: 768px) {
    & {
      font-size: 14px;
      margin: 0 5px;
      min-height: 30px;
      text-align: center;
      padding: 5px;
    }
  }

  &.checked {
    color: #fff;
    background-color: #1E9FFF;
  }
  &:hover {
    color: #fff;
    background-color: #1E9FFF;
  }
}


// 浙里防疫 四个tab样式
.epidemic_area{
  justify-content: left;
  margin: 10px 20px;
  padding:10px;
}

.epidemic{
  margin:0 10px;
  width: 200px;
  background: rgba(20, 146, 255, 0.1);
  border: 1px solid #1492FF;
  box-sizing: border-box;
  border-radius: 4px;
  height: 44px;
}

到此这篇关于React手写tab切换的文章就介绍到这了,更多相关React tab切换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React手写tab切换问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React如何手写tab切换问题

小编给大家分享一下React如何手写tab切换问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!父文件import React, { useState } fro
2023-06-25

手把手教你使用Vue实现一个tab栏切换功能

随着前端技术的不断发展,Vue已成为最受欢迎的JavaScript框架之一。Vue的出现,让前端开发变得更加简单和高效。在Vue中,我们可以通过指令和组件来构建一个复杂的界面。其中,tab栏经常出现在网站的导航栏或者选项卡中,本文将介绍如何使用Vue实现tab栏切换。一、创建Vue项目首先需要安装Vue CLI,执行如下命令:```npm install -g vue-cli`
2023-05-14

win8 手写输入实现大小写切换教程(图文)

知识点分析:正常手写输入的是大写,识别出来既是大写,手写输入小写既是小写,如图:但若输入的为S这样的大小写一样的字母时,便不好判断大小写。操作步骤:其实大小写可以在输入面板中切换:点击字母上方的向下小三角,在里面去选择即可,如图:
2022-06-04

解析Android横竖屏切换的问题

在做android 开发时,在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横评一样的画面,这样会有2个问题,布局问题,在竖屏 显示的布局到横屏中由于宽和高发生
2022-06-06

解决win8 microsoft账户切换失败问题

win8microsoft账户切换的时候经常会发现切换失败,这该如何解决呢? 工具/原料 win8系统 电脑 方法/步编程骤 在win8.1桌面http://www.cppcns.com,按“Windows+C”快捷
2023-05-23

Android Studio 3.6 layout文件text模式切换问题

如题。 3.6 版本的AS,对于活动布局文件的显示有text和view模式,但是切换的按钮位置与之前版本的不同。如下图在右上角的三个按钮 点击1,显示text模式(就是xml代码) 点击3,显示view模式(就是直观的gui) 点击2,是以
2022-06-07

win10系统切换常见问题怎么解决

本文小编为大家详细介绍“win10系统切换常见问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10系统切换常见问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win10系统切换账户、桌
2023-07-01

编程热搜

目录