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. }

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

目录
相关文章
|
4月前
|
JavaScript 前端开发
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
160 1
|
1月前
|
前端开发 JavaScript 开发者
深入理解React Hooks:提升前端开发效率的关键
【10月更文挑战第5天】深入理解React Hooks:提升前端开发效率的关键
|
13天前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
45 9
|
1月前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
1月前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
1月前
|
前端开发 数据管理 编译器
引领前端未来:React 19的重大更新与实战指南🚀
React 19 即将发布,带来一系列革命性的新功能,旨在简化开发过程并显著提升性能。本文介绍了 React 19 的核心功能,如自动优化重新渲染的 React 编译器、加速初始加载的服务器组件、简化表单处理的 Actions、无缝集成的 Web 组件,以及文档元数据的直接管理。这些新功能通过自动化、优化和增强用户体验,帮助开发者构建更高效的 Web 应用程序。
100 1
引领前端未来:React 19的重大更新与实战指南🚀
|
18天前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
45 2
|
20天前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
20天前
|
前端开发 JavaScript 开发者
“揭秘React Hooks的神秘面纱:如何掌握这些改变游戏规则的超能力以打造无敌前端应用”
【10月更文挑战第25天】React Hooks 自 2018 年推出以来,已成为 React 功能组件的重要组成部分。本文全面解析了 React Hooks 的核心概念,包括 `useState` 和 `useEffect` 的使用方法,并提供了最佳实践,如避免过度使用 Hooks、保持 Hooks 调用顺序一致、使用 `useReducer` 管理复杂状态逻辑、自定义 Hooks 封装复用逻辑等,帮助开发者更高效地使用 Hooks,构建健壮且易于维护的 React 应用。
28 2
|
20天前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略