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 相关文章推荐
url 特殊字符 传递参数解决方法
Jan 01 Javascript
javascript中的继承实例代码
Apr 27 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
Jan 04 Javascript
JS实现的A*寻路算法详解
Dec 14 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
什么是SOLID
Mar 24 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
javascript动态加载三
2012/08/22 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
javascript arguments使用示例
2014/12/16 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
Django中使用locals()函数的技巧
2015/07/16 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
人事行政主管岗位职责
2013/12/22 职场文书
安全生产检查通报
2014/01/29 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
2016年教师节感言
2015/12/09 职场文书