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 index()方法 获取相应元素索引值
Oct 12 Javascript
php与js的区别是什么
Aug 05 Javascript
JS实现很实用的对联广告代码(可自适应高度)
Sep 18 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
利用JQuery实现datatables插件的增加和删除行功能
Jan 06 Javascript
微信小程序 开发之全局配置
May 05 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
JS简易计算器实例讲解
Jun 30 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用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
Jquery遍历Json数据的方法
2015/04/20 Javascript
DOM 高级编程
2015/05/06 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
Node.js学习入门
2017/01/03 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
python中提高pip install速度
2020/02/14 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
Python 实现一个简单的web服务器
2021/01/03 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
小学毕业演讲稿
2014/04/25 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
三年级学生评语大全
2014/12/26 职场文书
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL