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

react-12父子组件间的数据传递(子传父)(父传子)- props实现

1.子组件调用父组件的函数并传递数据(子传父)

1.1父组件
import React, { Component } from 'react';
import ChildComponent from './ChildComponent';class ParentComponent extends Component {constructor(props) {super(props);this.state = {items: []};}// 父组件的方法,用于接收子组件传递的数据addList = (listObj) => {this.setState(prevState => ({items: [...prevState.items, listObj]}));};render() {return (<div><h2>Parent Component</h2><ChildComponent addList={this.addList} /><div><h3>Items:</h3><ul>{this.state.items.map((item, index) => (<li key={index}>{JSON.stringify(item)}</li>))}</ul></div></div>);}
}export default ParentComponent;
1.2子组件
import React, { Component } from 'react';class ChildComponent extends Component {handleAddItem = () => {// 创建要传递的对象const listObj = {id: Date.now(),name: `Item ${this.props.itemsCount || 0}`,value: Math.random()};// 调用父组件传递的函数并传递数据this.props.addList(listObj);};render() {return (<div><h3>Child Component</h3><button onClick={this.handleAddItem}>Add Item to Parent</button></div>);}
}export default ChildComponent;
1.3 总结 
  1. 父组件定义方法:父组件定义了一个 addList 方法,用于接收子组件传递的数据并更新状态。
  2. 传递方法给子组件:父组件通过 props 将 addList 方法传递给子组件。
  3. 子组件调用父组件方法:子组件通过 this.props.addList(listObj) 调用父组件的方法,并传递数据。
  4. 状态更新:父组件接收到数据后更新自己的状态,触发重新渲染。

2.父组件可以通过 props 直接向子组件传递数据(父传子) 

2.1父组件
import React, { Component } from 'react';
import ChildComponent from './ChildComponent';class ParentComponent extends Component {constructor(props) {super(props);this.state = {list: [{ id: 1, name: 'Item 1' },{ id: 2, name: 'Item 2' },{ id: 3, name: 'Item 3' }]};}render() {return (<div><h2>Parent Component</h2>{/* 将 list 传递给子组件 */}<ChildComponent list={this.state.list} /></div>);}
}export default ParentComponent;
2.2子组件 
import React, { Component } from 'react';class ChildComponent extends Component {render() {// 从 props 中解构出 listconst { list } = this.props;return (<div><h3>Child Component</h3><ul>{list.map((item) => (<li key={item.id}>{item.name}</li>))}</ul></div>);}
}export default ChildComponent;
2.3 总结 
  1. 父组件传递数据:父组件通过 this.state.list 将数据传递给子组件。在 JSX 中,子组件的属性被设置为 list={this.state.list}。
  2. 子组件接收数据:子组件通过 this.props.list 接收父组件传递的数据。在子组件的 render 方法中,使用解构赋值 const { list } = this.props; 来获取 list。
  3. 渲染数据:子组件使用接收到的 list 数据来渲染一个无序列表。
http://www.dtcms.com/a/173414.html

相关文章:

  • 基于大模型的自然临产阴道分娩全流程预测与方案研究报告
  • 智能推理DeepSeek-R1+Word深度整合业级智能办公构建
  • 互联网法院在NFT、元宇宙等新兴领域的规则创新
  • iOS开发架构——MVC、MVP和MVVM对比
  • SQL注入总结
  • Android学习总结之Java和kotlin区别
  • Kotlin数据类在Android开发中的应用
  • Spark,配置历史服务
  • 【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
  • 基于SSM实现的健身房系统功能实现一
  • 临床智能体AI与环境感知AI的融合:基于python的医疗自然语言处理深度分析
  • 【C++ Qt】常用输入类下:Combo Box/Spin Box/DataTimeEdit/Dial/Slide
  • 没有 Mac,如何把 iOS App 成功上架?
  • Windows系统修改Docker Desktop(WSL2)内存分配
  • Super VLAN配置
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-Docker(二)
  • 【Java学习】反射
  • 了解一下OceanBase中的表分区
  • JVM堆的分代机制
  • 云计算与大数据进阶 | 21、可扩展系统构建
  • 谷歌在即将举行的I/O大会之前,意外泄露了其全新设计语言“Material 3 Expressive”的细节
  • 【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型
  • 国标GB28181视频平台EasyCVR安防系统部署知识:如何解决异地监控集中管理和组网问题
  • Copilot for PPT 可直接用模板创建品牌演示文稿
  • css媒体查询及css变量
  • Linux USB Gadget | 框架 / 复合设备实践 / Configfs 配置
  • 概统期末复习--速成
  • Desfire Ev1\Ev2\Ev3卡DES\3K3DES\AES加解密读写VB.Net示例源码
  • 在与大语言模型交互中的礼貌现象:技术影响、社会行为与文化意义的多维度探讨
  • 第六节:图像基本操作-像素级操作