react實現(xiàn)復選框全選和反選組件效果
更新時間:2020年08月25日 11:01:45 作者:#麻辣小龍蝦#
這篇文章主要為大家詳細介紹了react實現(xiàn)復選框全選和反選組件效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了react實現(xiàn)復選框全選和反選組件的具體代碼,供大家參考,具體內(nèi)容如下
運行效果圖如下:
代碼:
import React, { Component } from 'react'; import { withRouter } from 'react-router-dom'; // import Menu from '../menu/Menu.jsx'; class List extends Component { constructor () { super(); this.state = { title: '我是List的標題', content: '我是內(nèi)容部分部分', chooseAll: false, // 全選標志 inters: ['bsball', 'ymball', 'fbball'], // 頁面加載默認選中項 intersAll: ['bsball', 'ymball', 'ppball', 'fbball'], fchoose: false // 正反選標志 }; } // 全選 chooseAll (event) { let {checked, value} = event.target; let chooseAll = this.state.inters.length === 4 ? true : false; let inters = ['bsball', 'ymball', 'ppball', 'fbball']; checked ? ( this.setState({ inters, chooseAll: checked }) ) : ( this.setState({ inters: [], chooseAll: checked }) ); } // 點擊復選框 chooseInter (event) { let val = event.target.value; let checked = event.target.checked; let {inters} = this.state; // event.stopPropagation(); // 選中復選框并且值不在數(shù)組里面 if (checked && !this.state.inters.includes(val)) { inters.push(val); } else { // 取消選中的選項 inters = inters.filter(v => val !== v); } let chooseAll = inters.length === 4 ? true : false; console.log(inters); this.setState({ inters, chooseAll }); } // 反選處理 fchooseHandle (event) { let {checked, value} = event.target; let {inters, intersAll} = this.state; let chooseAll = this.state.inters.length === 4 ? true : false; let arr = []; // 反選結(jié)果 this.setState({ fchoose: checked, chooseAll }); intersAll.forEach(item => { if (!inters.includes(item)) { arr.push(item); } }); this.setState({ inters: arr }); } componentWillMount () { let chooseAll = this.state.inters.length === 4 ? true : false; this.setState({ chooseAll }); } render () { return ( <div className="list"> {/* <Menu /> */} <h1>{this.state.title}</h1> <p>{this.state.content}</p> <p> <label> <input type="checkbox" value="bsball" checked={this.state.fchoose} onClick={this.fchooseHandle.bind(this)}/>{this.state.fchoose ? '取消反選' : '反選'} </label> <label> <input type="checkbox" value="bsball" checked={this.state.chooseAll} onClick={this.chooseAll.bind(this)}/>{this.state.chooseAll ? '取消全選' : '全選'} </label> </p> <p> <label> <input type="checkbox" value="bsball" checked={this.state.inters.includes('bsball')} onClick={this.chooseInter.bind(this)}/>籃球 </label> <label> <input type="checkbox" value="ymball" checked={this.state.inters.includes('ymball')} onClick={this.chooseInter.bind(this)}/>羽毛球 </label> <label> <input type="checkbox" value="ppball" checked={this.state.inters.includes('ppball')} onClick={this.chooseInter.bind(this)}/>兵乓球 </label> <label> <input type="checkbox" value="fbball" checked={this.state.inters.includes('fbball')} onClick={this.chooseInter.bind(this)}/>足球 </label> </p> </div> ); } } export default withRouter(List);
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用react-beautiful-dnd實現(xiàn)列表間拖拽踩坑
相比于react-dnd,react-beautiful-dnd更適用于列表之間拖拽的場景,本文主要介紹了使用react-beautiful-dnd實現(xiàn)列表間拖拽踩坑,感興趣的可以了解一下2021-05-05詳解Webpack+Babel+React開發(fā)環(huán)境的搭建的方法步驟
本篇文章主要介紹了詳解Webpack+Babel+React開發(fā)環(huán)境的搭建的方法步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01解決React報錯JSX?element?type?does?not?have?any?construct
這篇文章主要為大家介紹了解決React報錯JSX?element?type?does?not?have?any?construct?or?call?signatures,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12react清空ant.design中表單內(nèi)容的方法實現(xiàn)
本文主要介紹了react清空ant.design中表單內(nèi)容的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12