react实现复选框全选和反选组件效果
本文实例为大家分享了react实现复选框全选和反选组件的具体代码,供大家参考,具体内容如下
运行效果图如下:
代码:
importReact,{Component}from'react'; import{withRouter}from'react-router-dom'; //importMenufrom'../menu/Menu.jsx'; classListextendsComponent{ constructor(){ super(); this.state={ title:'我是List的标题', content:'我是内容部分部分', chooseAll:false,//全选标志 inters:['bsball','ymball','fbball'],//页面加载默认选中项 intersAll:['bsball','ymball','ppball','fbball'], fchoose:false//正反选标志 }; } //全选 chooseAll(event){ let{checked,value}=event.target; letchooseAll=this.state.inters.length===4?true:false; letinters=['bsball','ymball','ppball','fbball']; checked?( this.setState({ inters, chooseAll:checked }) ):( this.setState({ inters:[], chooseAll:checked }) ); } //点击复选框 chooseInter(event){ letval=event.target.value; letchecked=event.target.checked; let{inters}=this.state; //event.stopPropagation(); //选中复选框并且值不在数组里面 if(checked&&!this.state.inters.includes(val)){ inters.push(val); }else{ //取消选中的选项 inters=inters.filter(v=>val!==v); } letchooseAll=inters.length===4?true:false; console.log(inters); this.setState({ inters, chooseAll }); } //反选处理 fchooseHandle(event){ let{checked,value}=event.target; let{inters,intersAll}=this.state; letchooseAll=this.state.inters.length===4?true:false; letarr=[];//反选结果 this.setState({ fchoose:checked, chooseAll }); intersAll.forEach(item=>{ if(!inters.includes(item)){ arr.push(item); } }); this.setState({ inters:arr }); } componentWillMount(){ letchooseAll=this.state.inters.length===4?true:false; this.setState({ chooseAll }); } render(){ return({/**/} {this.state.title}
{this.state.content}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。