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获取地址栏参数
Dec 22 Javascript
COM中获取JavaScript数组大小的代码
Nov 22 Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
javascript确认框的三种使用方法
Dec 17 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
vuejs如何配置less
Apr 25 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
k8s node节点重新加入master集群的实现
Feb 22 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
Smarty Foreach 使用说明
2010/03/23 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP getName()函数讲解
2019/02/03 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python 字符串格式化代码
2013/03/17 Python
python类和继承用法实例
2015/07/07 Python
详解Python核心对象类型字符串
2018/02/11 Python
Python爬豆瓣电影实例
2018/02/23 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
python的launcher用法知识点总结
2020/08/07 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
酒店管理求职信
2014/06/09 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
创业计划书之烤红薯
2019/09/26 职场文书