React移动端中实现全选和不选的实现
React移动端中实现全选和不选的实现
React移动端中实现点击全选,数据全部选择,数据有一个不选择,全选就不选
下面是一种实现方式,其中的 data
表示要选择的数据列表,每个数据对象中有一个 checked
属性,表示该数据是否被选中。当点击全选按钮时,会将所有数据的 checked
属性设为 true
,当数据有一个未被选中时,全选按钮也会被设为未选中状态。
import { useState } from "react";function App() {const [data, setData] = useState([{ id: 1, name: "John Doe", checked: false },{ id: 2, name: "Jane Smith", checked: false },{ id: 3, name: "Bob Johnson", checked: false },]);const handleToggleAll = () => {const allChecked = data.every((item) => item.checked);setData((prevData) =>prevData.map((item) => ({ ...item, checked: !allChecked })));};const handleToggleItem = (id) => {setData((prevData) =>prevData.map((item) =>item.id === id ? { ...item, checked: !item.checked } : item));};return (<div><div><label><inputtype="checkbox"checked={data.every((item) => item.checked)}onChange={handleToggleAll}/>全选</label></div><ul>{data.map((item) => (<li key={item.id}><label><inputtype="checkbox"checked={item.checked}onChange={() => handleToggleItem(item.id)}/>{item.name}</label></li>))}</ul></div>);
}
export default App
效果:
React移动端中实现全选和不选的实现相关推荐
- android gridview item添加checkbox,手把手教你实现GridView中Checkbox全选
全选效果图 这节讲得相对比较基础的东西,高手请忽略. 首先新建一个GridviewAdapter继承BaseAdapter public class GridviewAdapter extends B ...
- react服务端/客户端,同构代码心得
FKP-REST是一套全栈javascript框架 react服务端/客户端,同构代码心得 作者:webkixi react服务端/客户端,同构代码心得 服务端,客户端同构一套代码,大前端的梦想,为了 ...
- React Native工程中TSLint静态检查工具的探索之路
背景 建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查 ...
- 手把手带你用next搭建一个完善的react服务端渲染项目(集成antd、redux、样式解决方案)
前言 本文参考了慕课网jokcy老师的React16.8+Next.js+Koa2开发Github全栈项目,也算是做个笔记吧. 源码地址 github.com/sl1673495/n- 介绍 Next ...
- 7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐
本文完整版:<7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐> React 移动端 UI 组件库 1. Taro UI for React - 京东出品,多端 ...
- 【笔记-node】《Egg.js框架入门与实战》、《用 React+React Hook+Egg 造轮子 全栈开发旅游电商应用》
20210226-20210227:<Egg.js框架入门与实战> 课程地址:https://www.imooc.com/learn/1185 第一章 课程导学 01-01 课程介绍 一. ...
- 用 TypeScript 编写一个 React 服务端渲染库(1)
前言 代码都甩在 Github 上面了,欢迎随手 star ? 踩坑的过程大概都在 TypeScript + Webpack + Koa 搭建 React 服务端渲染 这篇文章里面 踩坑的 DEMO ...
- React服务端渲染实现(基于Dva)
React服务端渲染实现 (基于Dva) 功能 基于 Dva 的 SSR 解决方案 (react-router-v4, redux, redux-saga) 支持 Dynamic Import (不再 ...
- vue+elementUI 添加多个可以全选的多选框
elementUI-checkbox官网:https://element.eleme.cn/#/zh-CN/component/checkbox 一.要做上面这种效果,首先要了解全选框中indeter ...
最新文章
- 北理工硕士生「一字不差」抄袭顶会投稿,网友:买论文被忽悠了?
- layui表格获取不到多层数据的解决方案
- SQLite 数据库注入总结
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)
- android camera2 采集,视频采集:Android平台基于Camera 2的实现
- Maven入门详解与安装配置
- 【Java】如何较好地将int转化成String
- 通信原理实践(一)——音频信号处理
- 山东泰开集团 工业机器人_泰开机器人有限公司
- jquery源码_详细中文注释
- 国庆长假自驾游推荐路线
- 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
- 解决RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED 踩过的坑(配置环境:linux+anaconda3+pytorch ...)
- Comic Life 3 for Mac(漫画创作软件)内附安装教程需要 macOS 11.x系统
- H5 页面适配所有 iPhone 和安卓机型的六个技巧
- mp3 文件专辑封面 一点点知识
- chromium内核edge浏览器开启多线程下载
- vive定位器突然闪红灯
- Ubuntu18.04+ros-melodic (包括Ubuntu16.04+ros-kinetic)乐视奥比中光相机在nano、tx2、PC等设备上的安装与使用,并解决无法显示rgb信息的问题
- 订阅号消息 服务号 信息推送
热门文章
- php 64进制转16进制,PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]
- 给公众号文章插入微附件,粉丝可直接点击下载
- 人民日报称楼市演变为局部过剩 当前存结构性问题
- 数据分类《二》贝叶斯分类
- 仿迅雷播放器教程 -- 基于VLC的C++播放器 (4)
- linux rz工具怎么用,Linux和Windows间文件传输工具rz/sz(lrz/lsz) 介绍
- mysql聚合函数统计_mysql学习-mysql聚合函数和分组统计
- 三数之和(双指针法)
- 四嗪-五聚乙二醇-羧基,1682653-79-7,Tetrazine-PEG5-COOH 水溶性和稳定性怎么样?
- 使用 C# 开发智能手机软件:推箱子(十一)