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 键盘事件的组合使用实现代码
May 04 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
js实现动态创建的元素绑定事件
Jul 19 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
ajax请求data遇到的问题分析
Jan 18 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
一个Vue页面的内存泄露分析详解
Jun 25 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
RxJS的入门指引和初步应用
Jun 15 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
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
浅析js中的浮点型运算问题
2014/01/06 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
pycharm安装图文教程
2017/05/02 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
实例详解Python模块decimal
2019/06/26 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
任课老师推荐信范文
2013/11/24 职场文书
高一家长会邀请函
2014/01/12 职场文书
中国央视网签名寄语
2014/01/18 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
2014年新教师工作总结
2014/11/08 职场文书
外出听课学习心得体会
2016/01/15 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android