react+TypeScript 选项卡

HTML:

import { Component} from "react";
import './tab.less'

interface Props{
    a:string
}
interface User{
    ID:string
    text:string
}
interface Cont{
    ID:string
    text:string
}
interface State{
    ButtonIndex:number
    ButtonList:User[]
    ContentList:Cont[]

}



class Drag extends Component<Props,State>{
    constructor(props:Props){
        super(props)
        
        this.state={
            ButtonIndex:0,
            ButtonList:[
                {
                    ID:"b01",
                    text:"按钮一"
                },
                {
                    ID:"b02",
                    text:"按钮二"
                },
                {
                    ID:"b03",
                    text:"按钮三"
                }
            ],
            ContentList:[
                {
                    ID:"c01",
                    text:"内容一"
                },
                {
                    ID:"c01",
                    text:"内容一"
                },
                {
                    ID:"c01",
                    text:"内容一"
                }
            ]
        }
    }
    Fntab(index:number){
        this.setState({
            ButtonIndex:index
        })
    }


    render(){
        let ButtonList=this.state.ButtonList
        let ContentList=this.state.ButtonList
        let ButtonIndex=this.state.ButtonIndex

        return(<div>
            {ButtonList.map((item,index)=>
                <button className={ButtonIndex===index?"button-ac":"button-ever"} key={item.ID} onClick={this.Fntab.bind(this,index)}>{item.text}</button>
            )}
            
                    
            {ContentList.map((item,index)=>
                   <div className="cont" style={{display:ButtonIndex===index?"block":"none"}} key={item.ID}>{item.text}</div>
            
            )}


              </div>)
    }
}


export default Drag

CSS:

.button-ac{
    background-color: red;
}
.cont{
    width: 400px;
    height: 300px;
    border: 1px solid #ccc;
    display: none;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值