news 2026/4/16 2:03:35

如何在 React 中正确将父组件函数传递给子组件并触发调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在 React 中正确将父组件函数传递给子组件并触发调用

本文详解 React 中父子组件间函数传递的常见误区与正确实践,重点解决因事件回调未执行导致父函数不被调用的问题,涵盖 onConfirm 等事件处理器的两种标准写法及注意事项。 本文详解 react 中父子组件间函数传递的常见误区与正确实践,重点解决因事件回调未执行导致父函数不被调用的问题,涵盖 `onconfirm` 等事件处理器的两种标准写法及注意事项。在 React 应用中,将父组件定义的函数安全、可靠地传递给子组件并确保其被正确触发,是组件通信的基础能力。但实践中一个高频错误是:函数虽成功传入 props,却因事件处理器写法不当而未实际执行。如问题所示,父组件中定义了 confirmFunc,并通过 <BasicAlert confirmFunc={confirmFunc} /> 传入子组件;但在子组件中使用 onConfirm={() => {props.confirmFunc}} 时,函数仅被引用,却未被调用——这导致点击确认按钮后控制台无输出,逻辑中断。? 正确写法一:直接赋值为事件处理器(推荐)当父函数无需额外参数且签名匹配事件回调(如 () => void)时,最简洁、高效的方式是直接将函数引用赋给事件属性:// 子组件 BasicAlert.jsx<SweetAlert onConfirm={props.confirmFunc} // ? 正确:React 自动在事件触发时调用该函数 // 其他 props...> del</SweetAlert>这种方式语义清晰、性能更优(避免每次渲染创建新箭头函数),且符合 React 官方推荐模式(见 Responding to Events)。? 正确写法二:内联调用(需显式执行)若需在调用前添加逻辑、或需向父函数传参,则应使用箭头函数并显式加括号执行: Tellers AI Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 2:02:39

STM32HAL库+FreeModbus实战:从CubeMX配置到485通信调试全流程(附源码)

STM32HAL库FreeModbus实战&#xff1a;从CubeMX配置到485通信调试全流程&#xff08;附源码&#xff09; 在工业自动化领域&#xff0c;Modbus协议因其简单可靠的特点成为设备通信的事实标准。对于嵌入式开发者而言&#xff0c;如何在资源有限的STM32微控制器上实现高效的Modbu…

作者头像 李华
网站建设 2026/4/16 1:54:17

我养了一只“数字龙虾”一个月,它现在是我最得力的同事

我养了一只“数字龙虾”一个月&#xff0c;它现在是我最得力的同事事情要从上个月说起。那段时间我的朋友圈被一只“龙虾”刷屏了。不是吃的&#xff0c;是AI——OpenClaw。一开始我完全没当回事&#xff0c;AI这玩意儿这几年见多了&#xff0c;聊天、写诗、画图&#xff0c;热…

作者头像 李华
网站建设 2026/4/16 1:52:13

Excel 撤销工作表保护密码

1、打开您需要破解保护密码的Excel文件&#xff1b; 2、依次点击菜单栏上的工具---宏----录制新宏&#xff0c;输入宏名字如:aa&#xff1b; 3、停止录制(这样得到一个空宏)&#xff1b; 4、依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮&#xff1b; 5、删除窗口中的所有…

作者头像 李华
网站建设 2026/4/16 1:50:11

周立功Zcanpro使用

一、基础&#xff1a; 周立功是发信号的工具 dbc和矩阵都是里面加载的 目的&#xff1a;用来测车机 二、前提条件&#xff1a; 1、是有周立功硬件设备&#xff0c;接can线 2、电脑下载了对应驱动 驱动链接&#xff1a;https://manual.zlg.cn/web/#/146 Zcanpro下载&…

作者头像 李华
网站建设 2026/4/16 1:49:13

10步搞定服务器部署全流程

&#xff08;买服务器 → FinalShell 连接 → 环境安装 → 前后端部署 → 上线访问&#xff09; 本地环境&#xff1a;JDK17 Maven3.9 Node22一次做完&#xff0c;直接能用&#xff01; 一、第一步&#xff1a;买服务器&#xff08;阿里云 / 腾讯云都行&#xff09; 1. 选配…

作者头像 李华