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 相关文章推荐
Javascript中暂停功能的实现代码
Mar 04 Javascript
JQuery中的ready函数冲突的解决方法
May 17 Javascript
javascript 仿QQ滑动菜单效果代码
Sep 03 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
Jquery 垂直多级手风琴菜单附源码下载
Nov 17 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
详解用场景去理解函数柯里化(入门篇)
Apr 11 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
python实现解数独程序代码
2017/04/12 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
Python读取表格类型文件代码实例
2020/02/17 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
python主要用于哪些方向
2020/07/05 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
土木工程毕业生自荐信
2013/09/21 职场文书
后勤工作职责
2013/12/22 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
银行贷款承诺书
2014/03/29 职场文书
2014年销售员工作总结
2014/12/01 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android