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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
JS函数重载的解决方案
May 13 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
Vue.js表单控件实践
Oct 27 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
javascript单张多张图无缝滚动实例代码
May 10 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Sublime开发python程序的示例代码
2018/01/24 Python
Python实现ping指定IP的示例
2018/06/04 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
python调用webservice接口的实现
2019/07/12 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
药品营销专业毕业生自荐信
2014/07/02 职场文书
员工安全生产责任书
2014/07/22 职场文书
白酒营销策划方案
2014/08/17 职场文书
忠诚教育心得体会
2014/09/03 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
假释思想汇报范文
2014/10/11 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
呐喊读书笔记
2015/06/30 职场文书
医院病假条范文
2015/08/17 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers