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 相关文章推荐
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
Jun 17 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
详解jQuery选择器
Dec 21 Javascript
vue-dialog的弹出层组件
May 25 Javascript
微信小程序用户自定义模版用法实例分析
Nov 28 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
Vue中Axios从远程/后台读取数据
Jan 21 Javascript
React Native 混合开发多入口加载方式详解
Sep 23 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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
深入理解PHP中的count函数
2016/05/31 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
python re正则表达式模块(Regular Expression)
2014/07/16 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python实现文件复制删除
2016/04/19 Python
Python File(文件) 方法整理
2019/02/18 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
python 实现让字典的value 成为列表
2019/12/16 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
优秀团队获奖感言
2014/02/19 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
展览会邀请函
2015/02/02 职场文书
2015年女职工工作总结
2015/05/15 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android