javascript - react 按钮事件样式

标签 javascript reactjs reactstrap

我是 React 和 UI 开发的新手,请耐心等待。 我有一个按钮列表,我试图在按钮处于事件状态时设置不同的图像图标,当我单击另一个按钮时,第二个按钮应该处于事件状态,第一个按钮应处于非事件状态,依此类推。

这是我的代码:

export class ABC extends Component {
    configFile = require('../../resources/stubs/config.json')

    constructor(props) {
        super(props);
        this.state = {
            cSelected: [],
            isHidden: true,
            level: this.configFile.Level,
            amount: this.configFile.amount,
            des1: this.configFile.desc1,
            des2: this.configFile.desc2,
            des3: this.configFile.desc3,

        }
        this.onRadioBtnClick = this.onRadioBtnClick.bind(this);
    };

    onRadioBtnClick(cSelected, aSelected, d1, d2, d3) {
        this.setState({
             cSelected,
             aSelected,
             d1,
             d2,
             d3
       });
    }



    render(){
        return (
          <div>
            <ButtonGroup>
                <Button className="circleIcon" 
                        onClick={() => this.onRadioBtnClick(this.state.level, this.state.amount, this.state.des1, this.state.des2, this.state.des3, )} 
                        active={this.state.cSelected === 1}><img src={incirclePurple}  
                        alt="profile-tab-icon" />|<span className="numberCircle">1</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Circle2", "$1,000-$2,499", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 2}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">2</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Circle3", "$2,500-$4,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 3}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">3</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Circle4", "$5,000-$9,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 4}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">4</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Circle5", "$10,000-$34,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 5}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">5</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Circle6", "$35,000-$74,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 6}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">6</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("President's Circle", ">$74,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 7}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">7</span></Button>
                <Button className="circleIcon" onClick={() => this.onRadioBtnClick("Chairman's Circle", ">$74,999", this.state.des1, this.state.des2, this.state.des3)} active={this.state.cSelected === 8}><img src={incirclePurple}  alt="profile-tab-icon" />|<span className="numberCircle">8</span></Button>
            </ButtonGroup>   
            <div>
                <p>{this.state.cSelected}{this.state.aSelected}</p>
                <ul>
                    <li>{this.state.d1}</li>
                    <li>{this.state.d2}</li>
                    <li>{this.state.d3}</li>
                </ul>
            </div> 
        </div>) 
    }
}

最佳答案

您可以为每个按钮指定一个唯一的 name 属性,并创建一个 activeButton 状态,该状态将采用激活按钮名称的值:

handleActiveButton(e) {
  e.preventDefault();

  const activeName = e.target.name;
  this.setState({ activeName });
}

然后在按钮的 className 属性中,您可以执行类似 className={ this.state.activeName === 'button1' ? '事件':'' }

其中 button1 是按钮的名称,active 是用于显示图像图标的 css 类。

关于javascript - react 按钮事件样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126675/

相关文章:

javascript - HTML 文本区域选项卡支持

javascript - 使用 $compile 以编程方式添加指令并从范围传递数据,

react-router - Reactstrap 和 React-router 4.0.0-beta.6 - 事件 <NavLink>

Reactjs - 无法使下拉菜单正确格式化

javascript - 为什么javascript无法获取样式值但可以更改它?

javascript - 无法让 Material UI (MUI) 在我的 React 应用程序中工作

javascript - React fetch在同一数组下发布多个值

reactjs - 我应该如何将 reduxForm 的子组件连接到 redux 状态?

reactjs - React Modal 未正确显示

JavaScript block 显示不适用于 Firefox 中的两个函数