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统计用户选中的复选框的个数
Jun 06 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
详解小程序之简单登录注册表单验证
May 13 Javascript
vue 设置 input 为不可以编辑的实现方法
Sep 19 Javascript
layui 实现加载动画以及非真实加载进度的方法
Sep 23 Javascript
JS实现炫酷轮播图
Nov 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
php解决约瑟夫环示例
2014/04/09 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
php compact 通过变量创建数组
2016/11/15 PHP
一个JS翻页效果
2007/07/23 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
js图片轮播插件的封装
2017/07/21 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
python matplotlib拟合直线的实现
2019/11/19 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
中介业务员岗位职责
2014/04/09 职场文书
中队活动总结
2014/08/27 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python