react 实现tab 切换功能

不断的蜕变只为遇见更好的自己,共勉。


tab.png

如果帮到了你,就点赞吧 感谢。

import React,{Component} from 'react';
import ReactDom from 'react-dom'
import Header from '../../compent/header'
// import Container from  '../container'
import '../../css/tabchange.css'

function RenderTabs(tabs,tab,changeTabs){
  return tabs.map((item, idx) => {
    if(!item.isshow){
      return null;
    }
    return(
        <li 
        key={item.index} 
        className ={ tab === idx ? 'active' :'' }  
        onClick={()=>{changeTabs(idx)}}>
        {item.name}{idx}
        </li>
    )
  })
}

function showMain(idx){
  switch (idx) {
    case 0:
      return <div>我是tab {idx}</div>
      break;
    case 1:
      return <div>我是tab {idx}</div>
      break;
    case 2:
      return <div>我是tab {idx}</div>
      break;
    default:
      break;
  }
}


class TabChange extends Component{
  constructor(props){
    super(props)

    const tabs =[
      {name:'tab',index:0,isshow:true},
      {name:'tab',index:1,isshow:true},
      {name:'tab',index:2,isshow:true}
    ]
    this.state={
      tab:0,
      tabs
    }
  }

  changeTabe=(idx)=>{
    console.log(idx);
    this.setState({
      tab:idx
    });
  }

 
  render(){
    const {tabs,tab} =this.state;
    return(
      <div className="tabchange-box">
        <Header title={'Tabchange'} haveNav={true}/>
        <ul>
          {RenderTabs(tabs,tab,this.changeTabe)}
        </ul>
        {showMain(tab)}
      </div>
    )
  }

}
export default TabChange;
//css
.tabchange-box{padding: 0px .2rem;}
.tabchange-box ul{display:flex;border-bottom: 1px solid #eee;flex-direction: row;}
.tabchange-box  ul li{text-align: center}
.tabchange-box  ul li.active{border-bottom: 2px solid rebeccapurple;color: rebeccapurple}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 01 “雯,你说我又长得不高,不帅,又没有什么钱,你为什么喜欢我哦?”你一脸认真又带...
    奔跑的少女阅读 548评论 1 2
  • 输入 Python 2.x版本格式一: raw_input("提示信息")功能:会等待用户输入内容, 直到用户按下...
    JasonRon阅读 328评论 0 0
  • 独处。 一边绣十字绣,一边听平凡的世界。 心里很安静。 偶尔听到特别的地方,会有点心酸想哭。 …… 2015.11...
    孙晓晓晓阅读 173评论 0 0
  • 坚持了快七天,打破习惯,中午去练了力量,说实话真的有点累,下午去听讲座,睡得昏天暗地,听完要下班了,到了去...
    继续做蚂蚁吧阅读 332评论 0 0

友情链接更多精彩内容