当前位置: 首页 > news >正文

实现通讯录人员选择

 

 第一部分:创建一个通讯录列表

let xingminglist=[{id:'pichangshan',name:'皮常山',department:'周口-许昌-平顶山项目组',tel:'13112345678',checked:false},{id:'xieguangkun',name:'谢广坤',department:'智慧燃气部',tel:'15112345678',checked:false},{id:'wanglaoqi',name:'王老七',department:'综合管理部',tel:'18112345678',checked:false},{id:'liuneng',name:'刘能',department:'财务管理部',tel:'13612345678',checked:false},{id:'zhaosi',name:'赵四',department:'安全生产中心,数智科技中心',tel:'13812345678',checked:false}]useEffect(() => {setxingmingList(xingminglist);}, []);

第二部分:实现HTML部分

<div  className="alarmNotice2_draw_top_body_list">{xingmingList.map((item,index)=>{return (<div className="alarmNotice2_draw_top_body_list_item" key={item.id}><div className="alarmNotice2_draw_top_body_list_item_left"><Checkbox  onChange={(e)=>onCheckChange(e,item)} ></Checkbox><div className="alarmNotice2_draw_top_body_list_item_left_name">{item.name}</div></div><div className="alarmNotice2_draw_top_body_list_item_right">{item.department}</div></div>)})}</div>

第三部分:实现JS部分

function onCheckChange(e,item){let trueOrfalse=e.target.checked;// let exists=addmanList.some(i => isEqual(i, item));let exists=addmanList.some(i => i.id=== item.id);if(trueOrfalse==true){setaddmanList(prev=>[...prev,item])}else{if(exists==true){let newaddmanList = addmanList.filter(i => i.id !== item.id);setaddmanList(newaddmanList)}}};

第四部分:拆解

some方法:测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回一个布尔值。
let exists=addmanList.some(i => i.id=== item.id);isEqual方法:如果你需要比较对象的内容而不是引用,考虑实现一个自定义的比较函数或者使用一个库如 Lodash 的 isEqual 方法。
let exists=addmanList.some(i => isEqual(i, item));

http://www.dtcms.com/a/283149.html

相关文章:

  • IKE学习笔记
  • Java强化:多线程及线程池
  • 从电子管到CPU
  • 基于MATLAB的决策树DT的数据分类预测方法应用
  • Android CameraX使用
  • [析]Deep reinforcement learning for drone navigation using sensor data
  • CClink IEF Basic设备数据 保存到MySQL数据库项目案例
  • 高德地图MCP服务使用案例
  • 解锁数据交换的魔法工具——Protocol Buffers
  • 矿业自动化破壁者:EtherCAT转PROFIBUS DP网关的井下实战
  • ABP VNext + EF Core 二级缓存:提升查询性能
  • Mysql系列--1、库的相关操作
  • Mybatis-2快速入门
  • @Binds/@IntoMap/@ClassKey的使用
  • C++ shared_ptr 底层实现分析
  • uniapp+vue3+鸿蒙系统的开发
  • WD5018 同步整流降压转换器核心特性与应用,电压12V降5V,2A电流输出
  • MySQL学习——面试版
  • ssl相关命令生成证书
  • LangChain面试内容整理-知识点21:LangSmith 调试与监控平台
  • 职业发展:把工作“玩”成一场“自我升级”的游戏
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
  • webpack相关
  • 基于Matlab的四旋翼无人机动力学PID控制仿真
  • 第五届计算机科学与区块链国际学术会议(CCSB 2025)
  • 大模型训练框架对比
  • CTFMisc之隐写基础学习
  • 重学前端007 --- CSS 排版
  • day22 力扣77.组合 力扣216.组合总和III 力扣17.电话号码的字母组合
  • 异常流程进阶 —— 进出异常时的压栈与出栈