{ this.setState({index})//更新状态 this.props.se_默认a-button-gr">
赞
踩
代码:
import React from "react"; import '../../style/detailLift/HeaderDate.scss' export default class HeaderDate extends React.Component { state={ index:0//默认选中第一个 } changeButton = (item,index) =>{ this.setState({index})//更新状态 } render() { const {selectType} = this.props return ( <div className={"headerDate_box"}> { selectType.map((item,index)=>{ return <button className={index===this.state.index?'button_active':''} key={index} onClick={()=>this.changeButton(item,index)} > {item.name} </button> }) } </div> ) } }
HeaderDate.scss:
headerDate_box{ margin-left:50%; transform: translateX(-50%); } .headerDate_box button{ font-size:0.8em; color:#fff8; width:3.5em; height:1.5em; line-height: 1.5em; background-color: transparent; padding: 0 1em 0 1em; border-radius: 10em; border: 0.05em solid #fff8; margin-right:1em; } .headerDate_box button:focus,.headerDate_box .button_active{ outline: none; border-color:#fff8; background-color: #41496D; }
效果图:
其实button中有个 autoFocus属性:只有当页面加载时按钮会自动地获得焦点(加载完当你点击页面其它位置时会自动失效),在此代码中有4个button,它会自动聚焦最后一个button,并不能将第一个button聚焦。
return (
<div className={"headerDate_box"}>
{
selectType.map((item:Item,index:number)=>{
return
<button autoFocus={true}
key={index}
onClick={()=>this.changeButton(item,index)}>
{item.name}
</button>
})
}
</div>
)
效果图:
采用css方式比较好~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。