react实现复选框全选和反选组件效果
编程学习 2021-07-04 14:06www.dzhlxh.cn编程入门
这篇文章主要为大家详细介绍了react实现复选框全选和反选组件效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了react实现复选框全选和反选组件的具体代码,供大家参考,具体内容如下
运行效果图如下:
代码:
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: '我是内容部分部分',
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();
// 选中复选框并且值不在数组里面
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 = []; // 反选结果
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 /> * 上一篇:React实现全选功能
下一篇:js实现数字跳动到指定数字
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间