博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 嵌套组件的通信
阅读量:5274 次
发布时间:2019-06-14

本文共 1418 字,大约阅读时间需要 4 分钟。

在react中经常会用到的组件嵌套,如下:

图中 parent本身是一个自定义的组件,然后内部又加入了 child的自定义组件,那么这种情况,父子之间如何通信

react中在父组件里面有一个 this.props.children  当没有子组件时,值为 undefined ,只有一个子组件时,为一个对象,多个子组件时为一个数组

我们可以使用react提供的方法遍历子组件,并且绑定

代码如下:

child.jsx

import React, { Component } from 'react';class Child extends Component {	constructor(props){		super(props);    	this.state = {date: new Date()};  }  showValue=()=>{    this.props.showValue && this.props.showValue()  }  render() {    return (      
Child
); }}export default Child;

  

在 parent.jsx中

import React, { Component } from 'react';class Parent extends Component {	constructor(props){		super(props);    	this.state = {date: new Date()};  }  showValue=()=>{    console.log("showValue....")  }  renderChildren(props) {    //遍历所有子组件    return React.Children.map(this.props.children, child => {        var childProps = {          //把父组件的props.name赋值给每个子组件(父组件传值给子组件)          name: props.name,          //父组件的方法挂载到props.showValue上,以便子组件内部通过props调用          showValue:this.showValue        };        return React.cloneElement(child,childProps );    });  }  render() {    return (      
Parent {this.renderChildren(this.props)}
); }}export default Parent;

  

关键在于:遍历内部的子组件,然后动态的给子组件绑定props

 

转载于:https://www.cnblogs.com/muamaker/p/9640442.html

你可能感兴趣的文章
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
echarts饼图显示百分比
查看>>
JMS消息
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>