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 通过模式匹配实现重载
Aug 12 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
animate 实现滑动切换效果【实例代码】
May 05 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 Javascript
Angular的自定义指令以及实例
Dec 26 Javascript
js实现五星评价功能
Mar 08 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
更优雅的微信小程序骨架屏实现详解
Aug 07 Javascript
uni-app从安装到卸载的入门教程
May 15 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
python实现代理服务功能实例
2013/11/15 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python检测服务器端口代码实例
2019/08/31 Python
python设置表格边框的具体方法
2020/07/17 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
c语言常见笔试题总结
2016/09/05 面试题
优秀学生事迹材料
2014/02/08 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Pytest中conftest.py的用法
2021/06/27 Python