react 函数式组件通信(父传子、子传父、兄弟之间)

本文主要是介绍react 函数式组件通信(父传子、子传父、兄弟之间),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、父传子

例: 通过在父组件中点击按钮打开弹框
Parent.tsx

import { useState } from 'react';
import Child from './Child';
export default function systemFields () {const [modelVisible, setModelVisible] = useState(false)const handleModel = () => {setModelVisible(true)}return (<div className="Parent"><Button onClick={handleModel}>open</Button><Child modelVisible={modelVisible}></Child></div>)
}

Child.tsx

import React, { useState } from 'react';
import { Modal } from 'antd';const Child = (props) => {let { modelVisible } = propsreturn (<><Modal title="Basic Modal" open={modelVisible}><p>Some contents......</p><p>Some contents......</p><p>Some contents......</p></Modal></>);
};
export default Child;

二、子传父

例: 通过在子组件中点击按钮关闭弹框
Child.tsx

import React, { useState } from 'react';
import { Modal } from 'antd';const Child = ({modelVisible, handleCancel}) => {return (<><Modal title="Basic Modal" open={modelVisible} onCancel={()=>handleCancel(false)}><p>Some contents......</p><p>Some contents......</p><p>Some contents......</p></Modal></>);
};
export default Child;

Parent.tsx

import { useState } from 'react';
import Child from './Child';
export default function systemFields () {const [modelVisible, setModelVisible] = useState(false)const handleModel = () => {// 打开弹框setModelVisible(true)}const getIsModalOpen = (isModalOpen) => {//关闭弹框setModelVisible(isModalOpen)}return (<div className="Parent"><Button onClick={handleModel}>open</Button><Child modelVisible={modelVisible} handleCancel={getIsModalOpen}></Child></div>)
}

三、兄弟组件之间传值

借助中间的父组件传值就行

这篇关于react 函数式组件通信(父传子、子传父、兄弟之间)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829332

相关文章

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

JavaWeb 中的 Filter组件详解

《JavaWeb中的Filter组件详解》本文详细介绍了JavaWeb中的Filter组件,包括其基本概念、工作原理、核心接口和类、配置方式以及常见应用示例,Filter可以实现请求预处理、响应后... 目录JavaWeb 中的 Filter 详解1. Filter 基本概念1.1 什么是 Filter1.

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Java通过ServerSocket与Socket实现通信过程

《Java通过ServerSocket与Socket实现通信过程》本文介绍了Java中的ServerSocket和Socket类,详细讲解了它们的构造方法和使用场景,并通过一个简单的通信示例展示了如何... 目录1 ServerSocket2 Socket3 服务器端4 客户端5 运行结果6 设置超时总结1

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境