REACT全选单选

简介: REACT全选单选

身为react初学者,遇到这个问题记录一下,在代码编译器里面可以直接运行,不会存在一点报错,测试了很多遍了,

就不放gif图片了

效果展示:可能不是特别明显

如上图所示

下方是全部代码

1. import React, { useEffect, useState } from "react";
2. import { Stepper, Checkbox } from "react-vant";
3. function calculateTotalQuantity(cart) {
4.   let totalQuantity = 0;
5. for (let item of cart) {
6.     totalQuantity += item.num;
7.   }
8. return totalQuantity;
9. }
10. export default function App() {
11.   const [list, setList] = useState([
12.     { name: "上官二" },
13.     { name: "张三" },
14.     { name: "李四" },
15.     { name: "王五" },
16.     { name: "赵六" },
17.     { name: "李七" },
18.     { name: "真的是" },
19.   ]);
20.   const [allChecked, setAllChecked] = useState(false);
21. // useEffect(() => {
22. //     // render()
23. // }, []);
24.   useEffect(() => {
25. if (list.length === list.filter((item) => item.checked).length) {
26.       setAllChecked(true);
27.     } else {
28.       setAllChecked(false);
29.     }
30.   }, [list]);
31. 
32.   useEffect(() => {
33. if (allChecked) {
34.       setList(
35.         list.map((item) => {
36.           item.checked = true;
37. return item;
38.         })
39.       );
40.     } else {
41.       setList(
42.         list.map((item) => {
43.           item.checked = false;
44. return item;
45.         })
46.       );
47.     }
48.   }, [allChecked]);
49. return (
50. <div>
51.       {list.map((item, index) => (
52. <div key={item.id}>
53. <div style={{ display: "flex" }}>
54. <Checkbox
55.               checked={item.checked}
56.               onChange={(checked) => {
57.                 setList(() => {
58.                   let arr = [...list];
59.                   arr[index].checked = checked;
60. return arr;
61.                 });
62.               }}
63. />
64. <div>
65. <p>{item.name}</p>
66. </div>
67. </div>
68. </div>
69.       ))}
70. <div>
71. <Checkbox
72.           checked={allChecked}
73.           onChange={setAllChecked}
74.           style={{ background: "white" }}
75. />
76. </div>
77. </div>
78.   );
79. }

有什么建议可以在评论区写出来,共同探讨,互相学习。

目录
相关文章
|
1月前
|
前端开发 开发者
React 单选按钮 Radio Button 详解
本文介绍 React 中单选按钮的基础概念、基本用法、常见问题及进阶技巧,包括如何正确设置 `checked` 属性、确保 `name` 属性一致、处理 `onChange` 事件,以及动态生成单选按钮和使用受控组件等,通过代码示例详细解析,帮助开发者有效管理状态和优化用户交互。
81 32
|
6月前
|
JavaScript 前端开发
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
199 1
|
3月前
|
前端开发 JavaScript 开发者
深入理解React Hooks:提升前端开发效率的关键
【10月更文挑战第5天】深入理解React Hooks:提升前端开发效率的关键
|
2月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
101 9
|
3月前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
3月前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
240 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
2月前
|
前端开发 JavaScript 开发者
使用React和Redux构建高效的前端应用
使用React和Redux构建高效的前端应用
63 1
|
3月前
|
前端开发 数据管理 编译器
引领前端未来:React 19的重大更新与实战指南🚀
React 19 即将发布,带来一系列革命性的新功能,旨在简化开发过程并显著提升性能。本文介绍了 React 19 的核心功能,如自动优化重新渲染的 React 编译器、加速初始加载的服务器组件、简化表单处理的 Actions、无缝集成的 Web 组件,以及文档元数据的直接管理。这些新功能通过自动化、优化和增强用户体验,帮助开发者构建更高效的 Web 应用程序。
240 1
引领前端未来:React 19的重大更新与实战指南🚀
|
2月前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
82 2