当前位置: 首页 > 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.xdnf.cn/news/303769.html

相关文章:

  • Axure :列表详情、列表总数
  • Spring Boot 3.x集成SaToken使用swagger3+knife4j 4.X生成接口文档
  • 开源与商业:图形化编程工具的博弈与共生
  • ExtraMAME:复古游戏的快乐“时光机”
  • 信息论01:从通信到理论的飞跃
  • 第七章,VLAN技术
  • Github 2025-05-06Python开源项目日报 Top10
  • Kotlin与Java在Android生态中的竞争与互补关系
  • RT-Thread自用记录(暂定)
  • 第四章-初始化Direct3D
  • 餐饮部绩效考核管理制度与综合评估方法
  • 【java】程序设计基础 八股文版
  • 开放的力量:新零售生态的共赢密码
  • 每日算法-250506
  • weapp-vite - 微信小程序工具链的另一种选择
  • OpenGL超大分辨率图像显示
  • Windows玩游戏的时候,一按字符键就显示桌面
  • imapal sql优化之hint
  • Codeforces Round 1023 (Div. 2) (A-D)
  • USB学习【2】通讯的基础-反向不归零编码
  • 优势演员-评论家A2C详解:python从零实现
  • 【KWDB 创作者计划】一文掌握KWDB的时序表管理
  • 计算机中的逻辑运算
  • DVWA靶场保姆级通关教程--03CSRF跨站请求伪造
  • 碰一碰发视频源码搭建的定制化开发实践
  • 代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串
  • Ubuntu 22.04 安装配置远程桌面环境指南
  • K8s 常用命令、对象名称缩写汇总
  • Mysql group by 用法
  • ResNet50应用于农业保险现场照片作物种类核验