react傳遞函數與回調函數原理

為什么 React 允許直接傳遞函數?

回調函數核心邏輯?

?

例子:父組件控制 Modal 的顯示與隱藏

// 父組件 (ParentComponent.tsx)
import React, { useState } from 'react';
import { Modal, Button } from 'antd';
import ModalContent from './ModalContent';const ParentComponent = () => {const [visible, setVisible] = useState(false);// 用于關閉 Modal 的回調函數const hideModal = () => setVisible(false);return (<><Button type="primary" onClick={() => setVisible(true)}>新增算子</Button><Modaltitle="新增算子"visible={visible}onCancel={hideModal}  // 關閉 Modal 的回調函數footer={null}  // 自定義 footer 按鈕>{/* 將回調函數傳遞給子組件 */}<ModalContent onClose={hideModal} /></Modal></>);
};export default ParentComponent;
// 子組件 (ModalContent.tsx)
import React from 'react';
import { Button } from 'antd';interface ModalContentProps {onClose: () => void;  // 父組件傳遞來的回調函數
}const ModalContent: React.FC<ModalContentProps> = ({ onClose }) => {return (<div><p>這是新增算子的內容</p><Button type="primary" onClick={onClose}>確認</Button>  {/* 調用傳遞來的回調函數 */}<Button onClick={onClose}>取消</Button>  {/* 調用傳遞來的回調函數 */}</div>);
};export default ModalContent;

?

具體例子

父組件

          <div><Modaltitle="添加算子"open={open}confirmLoading={confirmLoading}onOk={handleOk}onCancel={handleCancel}centered={true}footer={null} // 不使用 Modal 自帶的 footer><AddOptsModal onCancel={handleCancel}></AddOptsModal></Modal></div>const [open, setOpen] = useState(false)const handleCancel = () => {setOpen(false)}

?子組件

import { Button } from 'antd'
interface AddOptsModalProps {onCancel: () => void
}const AddOptsModal: React.FC<AddOptsModalProps> = ({ onCancel }) => {return (<div><Button onClick={onCancel}>關閉</Button></div>)
}
export default AddOptsModal

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70131.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Spring AI】基于SpringAI+Vue3+ElementPlus的QA系統實現(前端)

整理不易&#xff0c;請不要吝嗇你的贊和收藏。 1. 前言 這篇文章是 Spring AI Q&A 系統的前端實現。這篇文章將介紹如何快速搭建一個基于 vue3 ElementPlus 的前端項目&#xff0c;vue3 項目的目錄結構介紹&#xff0c;如何在前端實現流式響應&#xff0c;如何高亮顯示…

企業級API集成方案:基于阿里云函數計算調用DeepSeek全解析

解決方案鏈接&#xff1a;https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_contentg_1000401616 何為DeepSeek R1 DeepSeek R1模型有諸多技術優勢。高效架構設計使其能更高效提取特征&#xff0c;減少冗余計算&#xff0c;提升數據處理速度、…

K8s學習總結

文章目錄 介紹Kubernetes 核心組件k8s安裝環境安裝組件 常用命令測試1. 創建一個測試應用程序2. 檢查 Pod 是否運行 3. 暴露應用讓外部訪問4. 查看服務的暴露端口5. 訪問 nginx 服務6. 驗證節點調度 如有錯誤&#xff0c;敬請指針&#xff0c;謝謝! 介紹 Kubernetes&#xff0…

前端為什么要使用new Promise包裹一個函數

在前端開發中&#xff0c;使用 new Promise 包裹一個函數主要是為了將原本不支持 Promise 規范的操作轉化為支持 Promise 規范的操作&#xff0c;從而可以更好地處理異步操作&#xff0c;提升代碼的可讀性和可維護性。下面詳細介紹這么做的常見原因和應用場景&#xff1a; 1. …

說下JVM中一次完整的GC流程?

大家好&#xff0c;我是鋒哥。今天分享關于【說下JVM中一次完整的GC流程?】面試題。希望對大家有幫助&#xff1b; 說下JVM中一次完整的GC流程? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 JVM中的一次完整的垃圾回收&#xff08;GC&#xff09;流程可以概括為…

dnslog+sqlmap外帶數據

目錄 爆庫 爆表 爆列 爆數據 sqlmapDNSlog 外帶參數 –dns-domain參數注入 –dns-domain參數為dnslog平臺的域名&#xff08;我們也可以使用本地&#xff09; 爆庫 python sqlmap.py -u "http://127.0.0.1/sqli/less-8/index.php/?id1" -techniqueB -dns-dom…

提升顧客轉化率:融合2+1鏈動模式AI智能名片與S2B2C商城小程序的創新策略

摘要&#xff1a;在數字化轉型的背景下&#xff0c;零售商面臨著提升顧客轉化率的巨大挑戰。本文旨在探討如何通過整合顧客行為數據、21鏈動模式、AI智能名片及S2B2C商城小程序等新興技術與商業模式&#xff0c;來精準定位顧客需求&#xff0c;優化營銷策略&#xff0c;從而提高…

以若依移動端版為基礎,實現uniapp的flowable流程管理

1.前言 此代碼是若依移動端版為基礎&#xff0c;實現flowable流程管理&#xff0c;支持H5、APP和微信小程序三端。其中&#xff0c;APP是在安卓在雷電模擬器環境下完成的&#xff0c;其他環境未測試&#xff0c;此文章中所提及的APP均指上述環境。移動端是需要配合若依前后端分…

《全球網絡安全政策法律發展研究報告 (2024) 》

全球視野&#xff0c;深度剖析 報告以全球視野為出發點&#xff0c;深度剖析了2024年各國在網絡安全政策法律方面的最新進展。從局部區域沖突延宕到關鍵信息基礎設施(關基)安全保護規則的持續細化&#xff0c;從數據安全政策立法的蓬勃發展到個人信息保護立法的不斷完善&#…

細說STM32F407單片機RTC的備份寄存器原理及使用方法

目錄 一、備份寄存器的功能 二、示例功能 三、項目設置 1、晶振、DEBUG、CodeGenerator、USART6 2、RTC 3、NVIC 4、GPIO 及KEYLED 四、軟件設計 1、main.h 2、main.c 3、rtc.c 4、keyled.c、keyled.h 五、運行調試 本實例旨在介紹備份寄存器的作用。本實例繼續使…

建筑行業安全技能競賽流程方案

一、比賽時間&#xff1a; 6月23日8&#xff1a;30分準時到場&#xff1b;9&#xff1a;00&#xff0d;10&#xff1a;00理論考試&#xff1b;10&#xff1a;10-12:00現場隱患答疑&#xff1b;12:00-13&#xff1a;30午餐&#xff1b;下午13&#xff1a;30-15&#xff1a;30現場…

解鎖機器學習核心算法 | 線性回歸:機器學習的基石

在機器學習的眾多算法中&#xff0c;線性回歸宛如一塊基石&#xff0c;看似質樸無華&#xff0c;卻穩穩支撐起諸多復雜模型的架構。它是我們初涉機器學習領域時便會邂逅的算法之一&#xff0c;其原理與應用廣泛滲透于各個領域。無論是預測房價走勢、剖析股票市場波動&#xff0…

JAVA生產環境(IDEA)排查死鎖

使用 IntelliJ IDEA 排查死鎖 IntelliJ IDEA 提供了強大的工具來幫助開發者排查死鎖問題。以下是具體的排查步驟&#xff1a; 1. 編寫并運行代碼 首先&#xff0c;我們編寫一個可能導致死鎖的示例代碼&#xff1a; public class DeadlockExample {private static final Obj…

解決DeepSeek服務器繁忙問題

目錄 解決DeepSeek服務器繁忙問題 一、用戶端即時優化方案 二、高級技術方案 三、替代方案與平替工具&#xff08;最推薦簡單好用&#xff09; 四、系統層建議與官方動態 用加速器本地部署DeepSeek 使用加速器本地部署DeepSeek的完整指南 一、核心原理與工具選擇 二、…

機器學習 - 大數定律、可能近似正確學習理論

一、大數定律&#xff1a; 大數定律是概率論中的一個基本定理&#xff0c;其核心思想是&#xff1a;當獨立重復的隨機試驗次數足夠大時&#xff0c;樣本的平均值會趨近于該隨機變量的期望值。下面從直觀和數學兩個角度來說明這一概念&#xff1a; 1. 直觀理解 重復試驗的穩定…

【觸想智能】工業顯示器和普通顯示器的區別以及工業顯示器的主要應用領域分析

在現代工業中&#xff0c;工業顯示器被廣泛應用于各種場景&#xff0c;從監控系統到生產控制&#xff0c;它們在實時數據顯示、操作界面和信息傳遞方面發揮著重要作用。與普通顯示器相比&#xff0c;工業顯示器在耐用性、可靠性和適應特殊環境的能力上有著顯著的差異。 觸想工業…

PyCharm2024使用Python3.12在Debug時,F8步進時如同死機狀態

在使用時PyCharm2024&#xff0b;Python3.12&#xff0c;在程序進行調試時&#xff0c;按F8步進時如同死機狀態。 1、相同的程序在PyCharm2023&#xff0b;Python3.9時是沒有問題的&#xff0c;因此決定重裝PyCharm2023&#xff0b;Python3.9&#xff0c;進行調試——調試OK。 …

LLaMA-Factory DeepSeek-R1 模型 微調基礎教程

LLaMA-Factory 模型 微調基礎教程 LLaMA-FactoryLLaMA-Factory 下載 AnacondaAnaconda 環境創建軟硬件依賴 詳情LLaMA-Factory 依賴安裝CUDA 安裝量化 BitsAndBytes 安裝可視化微調啟動 數據集準備所需工具下載使用教程所需數據合并數據集預處理 DeepSeek-R1 可視化微調數據集處…

STM32 如何使用DMA和獲取ADC

目錄 背景 ?搖桿的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一種計算機技術&#xff0c;允許某些硬件子系統直接訪問系統內存&#xff0c;而不需要中央處理器&#xff08;CPU&#xff09;的介入&#xff0c;從而減輕CPU的負擔。我們可以通過DMA來從外設&#xf…

【ISO 14229-1:2023 UDS診斷全量測試用例清單系列:第十六節】

ISO 14229-1:2023 UDS診斷服務測試用例全解析&#xff08;LinkControl_0x87服務&#xff09; 作者&#xff1a;車端域控測試工程師 更新日期&#xff1a;2025年02月14日 關鍵詞&#xff1a;UDS協議、0x87服務、鏈路控制、ISO 14229-1:2023、ECU測試 一、服務功能概述 0x87服務…