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

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

目录
相关文章
|
前端开发 开发者
React 单选按钮 Radio Button 详解
本文介绍 React 中单选按钮的基础概念、基本用法、常见问题及进阶技巧,包括如何正确设置 `checked` 属性、确保 `name` 属性一致、处理 `onChange` 事件,以及动态生成单选按钮和使用受控组件等,通过代码示例详细解析,帮助开发者有效管理状态和优化用户交互。
339 32
|
JavaScript 前端开发
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
327 1
|
2月前
|
缓存 前端开发 JavaScript
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
🌟蒋星熠Jaxonic,前端探索者。专注React Hooks深度实践,从原理到实战,分享状态管理、性能优化与自定义Hook精髓。助力开发者掌握函数组件的无限可能,共赴技术星辰大海!
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
|
7月前
|
缓存 前端开发 数据安全/隐私保护
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
283 68
|
7月前
|
缓存 前端开发 Java
在 React 中,组合组件和高阶组件在性能方面有何区别?
在 React 中,组合组件和高阶组件在性能方面有何区别?
260 67
|
7月前
|
前端开发 JavaScript 安全
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
297 62
|
10月前
|
移动开发 前端开发 API
React 音频播放器组件 Audio Player
本文介绍如何使用React创建音频播放器组件,涵盖核心功能如播放/暂停、进度条、音量控制和时间显示。通过HTML5 `&lt;audio&gt;` 元素和React的声明式状态管理,实现交互式音频播放。常见问题包括控件不响应、进度条无法更新和音量控制失灵,并提供解决方案。此外,还讨论了浏览器兼容性、异步错误处理和性能优化等易错点及避免方法。
728 123
|
9月前
|
前端开发 JavaScript
除了使用Route组件,React Router还有其他方式处理404错误页面吗
除了使用Route组件,React Router还有其他方式处理404错误页面吗
255 58
|
9月前
|
前端开发
React 中高阶组件的原理是什么?
React 中高阶组件的原理是什么?
242 57
|
9月前
|
前端开发 开发者
除了函数组件和类组件,React 还有其他创建组件的方式吗?
除了函数组件和类组件,React 还有其他创建组件的方式吗?
188 57