ReactJS实现表单的单选多选和反选的示例


Posted in Javascript onOctober 13, 2017

本文介绍了ReactJS实现表单的单选多选和反选的示例,分享给大家,希望对大家有所帮助。
需求是对列表实现单选,反选和多选,全部清除的操作

...... 
 this.state = {
   //初始化空数组,表示已经选择的
   selectedStores:[],
  }

......

handleClick(e){

 const newSelection = e.target.value;//拿到点击的具体一项

 let newSelectionArray;//新建一个空数组

//判断点击项是否为选择状态,是的话清除选中状态

 if(this.state.selectedStores.indexOf(newSelection) > -1) {

  newSelectionArray =

  this.state.selectedStores.filter((s:any) => s !== newSelection)

} else {

//不是的话就加入新选择数组

  newSelectionArray =

  [...this.state.selectedStores, newSelection];

}

 this.setState({
// 新选择数组统一改为选中状态
  selectedStores: newSelectionArray

 });

}

Array.prototype.indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

语法:

arr.indexOf(searchElement)
arr.indexOf(searchElement[, fromIndex = 0])

Array.prototype.filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

语法:

var new_array = arr.filter(callback[, thisArg])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 模式对话框终极版实现代码
Sep 28 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
Dec 28 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
浅谈Javascript 数组与字典
Jan 29 Javascript
jQuery实现跨域
Feb 03 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 #Javascript
捕获未处理的Promise错误方法
Oct 13 #Javascript
解决ie img标签内存泄漏的问题
Oct 13 #Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 #jQuery
vue2组件之select2调用的示例代码
Oct 12 #Javascript
vue2.x select2 指令封装详解
Oct 12 #Javascript
一个简易时钟效果js实现代码
Mar 25 #Javascript
You might like
php中文字符截取防乱码
2008/03/28 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
js实现网页随机验证码
2020/10/19 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
使用pip安装python库的多种方式
2019/07/31 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
django ORM之values和annotate使用详解
2020/05/19 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
司机检讨书
2014/02/13 职场文书
会计个人实习计划书
2014/08/15 职场文书
三严三实对照检查材料
2014/08/25 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript