react子组件向父组件传参

在React中,子组件向父组件传参(或称为"通信")通常通过事件回调的方式实现。父组件向子组件传递一个函数作为props,子组件在需要时调用这个函数,并可以通过参数的形式向父组件传递数据。

下面是一个简单的例子来说明这个过程:

父组件(ParentComponent)

复制代码
import React, { useState } from 'react';  
import ChildComponent from './ChildComponent';  
  
function ParentComponent() {  
  const [childData, setChildData] = useState('');  
  
  // 这是一个由父组件传递给子组件的函数,用于接收子组件的数据  
  const handleChildData = (data) => {  
    setChildData(data);  
  };  
  
  return (  
    <div>  
      <h1>Parent Component</h1>  
      <p>Data from Child: {childData}</p>  
      <ChildComponent onReceiveData={handleChildData} />  
    </div>  
  );  
}  
  
export default ParentComponent;

子组件(ChildComponent)

复制代码
import React from 'react';  
  
function ChildComponent({ onReceiveData }) {  
  // 假设这里有一个按钮,点击时会触发数据传递  
  const sendDataToParent = () => {  
    const dataToSend = 'Hello from Child!';  
    onReceiveData(dataToSend); // 调用父组件传递的函数,并传递数据  
  };  
  
  return (  
    <div>  
      <h2>Child Component</h2>  
      <button onClick={sendDataToParent}>Send Data to Parent</button>  
    </div>  
  );  
}  
  
export default ChildComponent;

在这个例子中,ParentComponent 通过props向ChildComponent传递了一个名为onReceiveData的函数。这个函数在ParentComponent中被定义,用于更新ParentComponent的state(即childData)。当ChildComponent中的按钮被点击时,它会调用onReceiveData函数,并传递一个字符串'Hello from Child!'作为参数。这样,ParentComponent就能够接收到来自ChildComponent的数据,并更新其状态,从而在UI上反映出这一变化。

这种方式是React中实现组件间通信的一种常用且有效的方式,特别适用于父子组件之间的数据传递。

相关推荐
John_ToDebug9 分钟前
从 window.external 到 Mojo深度解析 Chromium 中 JS 与 C++ 的 7 种通信机制
javascript·chrome·mojo
老前端的功夫14 分钟前
TypeScript 类型守卫:从编译原理到高级模式
前端·javascript·架构·typescript
未来之窗软件服务25 分钟前
幽冥大陆(七十二) 东方仙盟-在线IP归属地自己封装—东方仙盟练气期
前端·javascript·tcp/ip·仙盟创梦ide·东方仙盟·阿雪技术观
ttod_qzstudio44 分钟前
备忘录之事件监听器绑定陷阱:为什么 .bind(this) 会移除失败?
javascript·typescript·内存泄漏·事件监听
ohyeah1 小时前
React 中的跨层级通信:使用 Context 实现主题切换功能
前端·react.js
扶我起来还能学_1 小时前
Vue3 proxy 数据响应式的简单实现
前端·javascript·vue
Dragon Wu2 小时前
前端项目架构 项目格式化规范篇
前端·javascript·react.js·前端框架
QQ 31316378902 小时前
文华财经软件指标公式期货买卖信号提示软件
java·前端·javascript
狂龙骄子2 小时前
svg实现蚂蚁线动画
javascript·蚂蚁线动画·蚂蚁线·虚线动画
俩毛豆3 小时前
【毛豆工具集】【文件】【目录操作】生成沙盒目录
前端·javascript·鸿蒙