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 插件学习(四)
Aug 06 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
js多功能分页组件layPage使用方法详解
May 19 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
Feb 06 Javascript
解决vue单页面应用中动态修改title问题
Jun 09 Javascript
微信小程序文章详情页跳转案例详解
Jul 09 Javascript
浅谈react useEffect闭包的坑
Jun 08 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
第一节--面向对象编程
2006/11/16 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP学习记录之数组函数
2018/06/01 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
JavaScript Timer实现代码
2010/02/17 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python:slice与indices的用法
2019/11/25 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
旅行社各个岗位职责
2014/03/15 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
运动会广播稿50字
2015/08/19 职场文书
解除合同协议书范本
2016/03/21 职场文书