2020-11-18 复选框全选Checkbox

背景:点击全部按钮,让展示的复选框全部选中,复选框使用的是Checkbox标签

代码:

 {this.state.jgmcData.map((item, i) => {                                                                                                                     return (<Checkbox                                                                                                                                     onChange={this.onChange.bind(this, item)}                                                                                                       value={item.id}                                                                                                                                             checked={this.state.checkedIds.includes(item.id)}>          //此处是重点                                                            </Checkbox>)                                                                                                                                                         })}

按钮:<Button primary  className={suse.cancelConcern}  onClick={() => this.onCheckAllChange()} >                              选择全部</Button>

js代码:

选择全部事件: onCheckAllChange = () => {                                                        let { pageFindList } = this.state;                                            let checkedIdsFromList = pageFindList.map((item, idx) => {                                                                             return item.id;                                                                                                                                                       });                                                                                                                                                             this.setState({ checkedIds: checkedIdsFromList, });                                                                                              };


单个复选框改变事件(增删改):onChange = (item) => {                                       let { checkedIds } = this.state;                                                                               if (checkedIds.includes(item.id)) {                                                             checkedIds.forEach((itemInner, idx) => {                                                                           if (itemInner == item.id) {                                                                                                 checkedIds.splice(idx, 1);                                                                                                                                       } });                                                                                                                                                                      } else { checkedIds.push(item.id); }                                                                                                     this.setState({checkedIds: checkedIds, });                                                                                                             };



总结:在复选框上加入value属性,然后点击全选的额时候将所有复选框的id放到一个数组变量中,然后在标签上使用“checked={this.state.checkedIds.includes(item.id)}>”判断赋值的变量中是否包含改复选框上得value,包含了则checked成立

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容