react遍历生成多个Button的单选和多选

// 设置初始默认值

this.state:{

    btnClassName:' ',

    btnClassNameArry: [ ],

}

// 选中button,多选

handleSelect = (itemChild) => {

const { btnClassNameArry } = this.state;

// 如果点击的在数组中已经存在,则从数组删除,否则,添加到数组

if (btnClassNameArry.indexOf(itemChild) > -1) {

      btnClassNameArry.splice(btnClassNameArry.indexOf(itemChild), 1);

} else {

     btnClassNameArry.push(itemChild);

}

const newBtnClassNameArry = btnClassNameArry;

// 改变state状态值

this.setState({

       btnClassNameArry: newBtnClassNameArry,

});

}

// 选中button 单选

handleSelectSigle = (itemChild) => {

// 改变state状态值

this.setState({

       btnClassName: itemChild,

});

}

 

//渲染列表

<div className="condition-div">

{data.map((item) => (

      <Row key={item.level0}>

     <Col span={5} className="condition-firCol">

         {item.level0}

      </Col>

 

      <Col span={19} className="tableSearchCol">

         {item.level1.map((itemChild) => (

           <Button

            key={itemChild}

           // 单行操作

           // className={this.state.btnClassName === itemChild ? 'tableSearch-btn-change' : 'tableSearch-btn'}

          //多行操作

          className={this.state.btnClassNameArry.indexOf(itemChild) > -1 ? 'tableSearch-btn-change' : 'tableSearch-btn'}

          onClick={() => {

              this.handleSelect(itemChild);

          }}

     >

         {itemChild}

      </Button>

     ))

     }

   </Col>

</Row>

))

}

</div>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值