react里面的父子组件通信

news/2024/7/15 18:58:36 标签: react.js, javascript, 前端

1.父组件:

// 父子组件传参
import React, { Component } from "react";
//引入子组件
import Child from './Child'

export default class Father extends Component {
    constructor() {
        super();
        this.state = {
            count: 10
        }

    }

//改变count的值
changeFather = ()=> {
    console.log('changeFather函数调用了');
    this.setState({
        count:this.state.count+1
    })
}

render() {
    let {count} = this.state;
    //也可以传递一个解构
    let oDiv = <div>我是一个HTML结果</div>
   
    return (
        <div>
            <p>我是Father组件</p>
            {/*传递数据 msg='我是字符串' */}

            <Child oDiv={oDiv} msg='我是字符串' count={count} changeFather={this.changeFather}>
                <h3>我是从父组件传递下去的h3标签</h3>
                <h2>我是第二个传递的</h2>
                <h1>我是第三个传递的</h1>
            </Child>
            
        </div>
    )
}

}

2.子组件:

import React, { Component } from "react";

export default class Child extends Component {
    //props 接收父组件传递的数据  constructor 和 super 都需要要接
    constructor(props) {
        //props 只能读取,不能修改
        console.log(props);
        super(props);
    }

    //更新后生命周期
    componentDidUpdate (){
        console.log('子组件componentDidUpdate 执行');
        //在子组件方法里面使用props传递下来的参数
        console.log('父组件传递下来的msg',this.props.msg);
        
    }

    //在子组件里面修改父组件的count
    changeFather = ()=> {
        this.props.changeFather()
    }
    
    render() {
        //直系子元素  react的插槽
        console.log('this.props.children',this.props.children);

        return (
            <div>
                <p>我是Child组件</p>
                <p>父组件传下来的msg:{this.props.msg}</p>
                <p>父组件传下来的count:{this.props.count}</p>
                <button onClick={this.changeFather}>在子组件里面修改父组件的count</button>
            
                {/* 接收父组件传递下来的结构 */}
                {this.props.children[1]}

                // 以下是传递的oDiv的值
                {this.props.oDiv}
            </div>
        )
    }
}

http://www.niftyadmin.cn/n/183402.html

相关文章

注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)

注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序) 目录 注意力机制 | CNN-BiLSTM-Attention基于卷积-双向长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)预测结果评价指标基本介绍程序设计参…

uniapp学习总结

文章目录前言一、学习Uni-app用到的技术1、 [uni-app官网](https://uniapp.dcloud.net.cn)2、 [HTML](https://www.w3school.com.cn/html/index.asp)3、[JS](https://www.w3school.com.cn/js/index.asp)4、[ES6](http://caibaojian.com/es6/)5、[CSS](https://www.w3school.com…

【图解http】

目录了解web及网络基础TCP/IP协议族与HTTP关系密切的协议&#xff1a;IP、TCP和DNS各种协议与HTTP协议的关系URI和URL简单的http协议通过请求和响应的交换达成通信HTTP是不保存状态的协议请求URI定位资源告知服务器意图的HTTP方法持久连接节省通信量HTTP报文编码提升传输速率压…

AI只会淘汰不进步的程序员

最近AI界的大新闻有点多&#xff0c;属于多到每天很努力都追不上&#xff0c;每天都忙着体验各种新产品或申请试用新产品。各种自媒体肯定也不会放过这个机会&#xff0c;AI取代程序员的文章是年年有&#xff0c;今天特别多。那么AI到底会不会取代程序员的工作呢&#xff1f;先…

用了小郑导师的这套模板,我的毕设有着落了~

☕前言&#xff1a; 不知不觉已经在大学中度过了四年时光&#xff0c;春暖花开、桃红柳绿&#xff0c;又到了一年毕设季&#xff0c;恰逢〖新星计划2023〗活动正好有毕设相关的创作方向&#xff0c;号称两小时带我搞定毕设&#xff0c;像我这样喜欢白嫖&#xff08;&#x1f61…

rancher2.6进阶之kubectl安装

rancher2.6进阶之kubectl安装 1.安装kubectl客户端 1.1.1.使用命令行下载安装包: curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl Note: 可指定下载版本, 将 ( c u r l − L − s h t t p s : / / d l . k …

数据仓库(分层和建模方法梳理)

整理不易&#xff0c;转发请注明出处&#xff0c;请勿直接剽窃&#xff01; 点赞、关注、不迷路&#xff01; 摘要&#xff1a; 数仓的作用、整体架构、建模方法、分层原理。从整体上梳理数仓、理解数仓架构。 目的 数据仓库的核心是展现层和提供优质的服务。ETL 及其规范、分…

【嘉立创EDA】从AD21导入pcb边界到嘉立创EDA专业版

文章路标👉 文章解决问题主题内容其他优化文章解决问题 1️⃣ Altium Designer(21.6.4)是pcb制作流程中常用的工具之一,主要任务是绘制原理图(sch)与绘制印制电路板文件(pcb)。得益于嘉立创EDA在国内的横空出世且恰逢科技产业国产化浪潮的大力推广,用户规模迅速扩大…