React实现全选功能


Posted in Javascript onAugust 25, 2020

本文实例为大家分享了React实现全选功能的具体代码,供大家参考,具体内容如下

1、主要就是使用state状态管理
2、jsx写的时候要多留心,return 的时候最好用一个()包着元素部分,不然有可能编译不过。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="./js/react.development.js"></script>
  <script src="./js/react-dom.development.js"></script>
  <script src="./js/babel.min.js"></script>
  <title>全选事件</title>
</head>
<body>
  <div id="root"></div>
</body>
 
<script type="text/babel">
  class Check extends React.Component{
    constructor() {
      super();
      this.state={
        list:[
          {'value':'苹果','checked':false},
          {'value':'橘子','checked':false},
          {'value':'凤梨','checked':false},
          {'value':'菠萝','checked':false},
          {'value':'无花果','checked':false},
          {'value':'火龙果','checked':false},
          {'value':'西瓜','checked':false},
        ],
        isAllChecked:false,
        color:'red',
        opacity:1
      }
    }
    isAllChecked(e){
      let bool = e.target.checked;
      if(bool){
        this.setState({
          isAllChecked : true
        })
        this.state.list.filter((item)=>{
          item.checked = true;
        })
      }else{
        this.setState({
          isAllChecked : false
        });
        this.state.list.filter((item)=>{
          item.checked = false;
        })
      }
      this.setState({
        list:this.state.list
      })
    }
    singleChecked(e,i){
      // i 就是下标
      this.state.list[i.index].checked = e.target.checked;
      this.setState({
        list:this.state.list
      });
      var bool=this.state.list.filter((item)=>{
        return !item.checked;  
      })
      if(bool.length == 0){
        this.setState({
          isAllChecked : true
        })
      }else{
        this.setState({
          isAllChecked : false
        })
      }
    }
    componentDidMount(){
      console.log("挂载完成");
      setInterval(()=>{
        let opa = this.state.opacity;
        opa >=0 ? opa=opa-0.1 : opa=1;
        this.setState({
          opacity:opa
        })
      },500)
    }
    render(){
      return(
        <div style={{'color':'red','fontSize':'20px'}}>
          <header style={{'opacity':this.state.opacity}}>全选练习</header>
          <div style={{'marginLeft':'30px'}}>
            全选 <input type="checkbox" checked={this.state.isAllChecked ? true : false} onChange={(e)=>{this.isAllChecked(e)}} /><br/><br/>
            {
              this.state.list.map((item,index)=>{
                return (
                  <div key={index}>
                   {item.value} <input type="checkbox"  value={item.value} onChange={(e)=>{this.singleChecked(e,{index})}} 
                   checked={item.checked ? true : false} />
                  </div>
                )
              })
            }
          </div>
        </div>
      )
    }
  }
  ReactDOM.render(
    <Check />,
    document.getElementById("root")
  )
 
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 私有成员分析
Jan 13 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
js history对象简单实现返回和前进
Oct 30 Javascript
JavaScript时间转换处理函数
Apr 14 Javascript
常用jQuery代码分享
Jul 14 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
Jquery获取radio选中的值
May 05 jQuery
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 Javascript
react实现复选框全选和反选组件效果
Aug 25 #Javascript
js实现数字跳动到指定数字
Aug 25 #Javascript
js实现点击选项置顶动画效果
Aug 25 #Javascript
理解JavaScript中的对象
Aug 25 #Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 #Javascript
node.js基础知识汇总
Aug 25 #Javascript
基于JS实现快速读取TXT文件
Aug 25 #Javascript
You might like
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
Python比较两个图片相似度的方法
2015/03/13 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Django分页功能的实现代码详解
2019/07/29 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
linux面试题参考答案(6)
2016/06/23 面试题
平面设计自荐信
2013/10/07 职场文书
学生会干部自荐信
2014/02/04 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
mysql sock文件存储了什么信息
2022/07/15 MySQL