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

从0学习React(9)

代码解析

const changeOrg = (orgId) => {
  queryData.orgId = orgId;
  delete queryData.deviceClassifyId;
  setQueryData(queryData);
  actionRef.current?.reset();
  loadTreeData(orgId);
};
1. const changeOrg = (orgId) => { ... };
  • 这是一个箭头函数(arrow function)的声明。
  • changeOrg 是函数的名称。
  • orgId 是函数的参数,表示新的组织机构 ID。
2. queryData.orgId = orgId;
  • 直接修改 queryData 对象的 orgId 属性,将其设置为新的 orgId
3. delete queryData.deviceClassifyId;
  • 使用 delete 运算符删除 queryData 对象的 deviceClassifyId 属性。
4. setQueryData(queryData);
  • 调用 setQueryData 函数,将更新后的 queryData 对象传递给它。
  • 假设 setQueryData 是一个用于更新查询参数的状态更新函数。
5. actionRef.current?.reset();
  • 使用可选链(optional chaining)运算符 ?. 来安全地访问 actionRef.current 对象的 reset 方法。
  • 如果 actionRef.current 存在,则调用其 reset 方法。
6. loadTreeData(orgId);
  • 调用 loadTreeData 函数,并传入新的 orgId 作为参数。
  • 假设 loadTreeData 是一个用于加载树形结构数据的函数。

使用的语法和概念

1. 箭头函数(Arrow Function)
  • 箭头函数是一种简洁的函数定义方式,语法为 const functionName = (params) => { ... };
  • 在箭头函数中,this 关键字的行为与普通函数不同,它不会绑定自己的 this,而是继承自外层作用域。
const changeOrg = (orgId) => { ... };
2. 对象属性赋值(Object Property Assignment)
  • 直接修改对象的属性值。
queryData.orgId = orgId;
3. 删除对象属性(Delete Property)
  • 使用 delete 运算符删除对象的属性。
delete queryData.deviceClassifyId;
4. 状态更新函数(State Update Function)
  • setQueryData 假设是 React 的状态更新函数,用于更新组件的状态。
setQueryData(queryData);
5. 可选链(Optional Chaining)
  • 可选链运算符 ?. 用于安全地访问对象的属性或方法,如果对象不存在则返回 undefined
actionRef.current?.reset();
6. 函数调用(Function Call)
  • 调用另一个函数,并传递参数。
loadTreeData(orgId);

http://www.kler.cn/a/374343.html

相关文章:

  • flutter dart mixin 姿势
  • Cuebric:用AI重新定义3D创作的未来
  • 记一次:使用使用Dbeaver连接Clickhouse
  • 从CAB到PAB Oracle的AI 23.6(之一)
  • SchooWeb2--基于课堂学习到的知识点2
  • Tomcat 和 Docker部署Java项目的区别
  • 100种算法【Python版】第32篇——Lucas-Lehmer测试
  • 【gRPC】什么是RPC——介绍一下RPC
  • HBM MM CDM HMM ESD TVS 浪涌
  • 【代码随想录Day54】图论Part06
  • 鸿蒙OS:中国智造的基石
  • w012基于springboot的社区团购系统设计
  • hadoop_yarn-site.xml
  • Chrome和夸克谁更护眼
  • OpenCV视觉分析之目标跟踪(2)卡尔曼滤波器KalmanFilter的使用
  • 【React】createContext 和 useContext
  • IDEA:ctrl+/ 快捷键生成的注释,设置“//”开始位置
  • 【机器学习】二分类神经网络
  • 摄像机实时接入分析平台LiteAIServer视频智能分析软件视频诊断中的抖动检测功能
  • 【99.9%解决】vue3+vite+typescript+vscode使用@alias路径别名配置不正确导致红色波浪线的解决办法
  • ssm026校园美食交流系统+vue(论文+源码)_kaic
  • 第三百零六节 Log4j教程 - Log4j日志级别
  • kubevirt cloud-init配置
  • 【解决方案】用git reset --hard重置了提交但是发现reset了一些本不该reset的内容,是不是寄了?
  • Android 圆形进度条CircleProgressView 基础版
  • Linux 程序地址空间