/**
*
* Author: shujun
* Date: 2020-10-25
*/ import React from 'react';
import {message} from 'antd';
import 'antd/dist/antd.css'; export default class Father extends React.Component{
render(){ return <div style={{width: '600px', paddingBottom: '20px', border: '1px solid red' }}>
<h3>father:</h3>
<p>
在父组件上调用子组件的方法,或者父组件访问子组件的内容?<br/>
1. 给子组件传递一个方法:将子组件整个类全部指向this.sonObj变量<br/>
2. 子组件调用父组件传入的函数,把自身赋给父组件
3. 父组件中this.sonObj就相当于子组件的this了,this.sonObj.xxx随便调用子组件方法和state
</p> {/* 3. 父组件中this.sonObj调用子组件方法 */}
<button onClick={() => {this.sonObj.showSonInfo()}}>
调用子组件方法
</button>
{/* 这么写为什么是错误的呢?难道是this.child.showSonInfo还没加载完成?而箭头函数声明写法只是申明,要等点击时候再触发? */}
{/* <button onClick={this.child.showSonInfo}>调用子组件方法</button> */} &nbsp;
<button onClick={() => {message.success("子组件state: "+this.sonObj.state.name)}}>
show 子组件state
</button> {/* 1. 给子组件传递一个方法:将子组件整个类全部指向this.sonObj变量 */}
<Son getSonFuncs={(son)=>{this.sonObj=son}} />
</div>
} } class Son extends React.Component {
state = {
"name": "sbjun"
}; componentDidMount(){
// 2. 子组件调用父组件传入的函数,把自身赋给父组件
this.props.getSonFuncs(this);
} showSonInfo = ()=>{
message.info("我是子组件Son的方法");
} render(){
const name = this.state.name; return <div style={{border: '1px solid green', marginTop: '20px'}}>
<h3>Son:</h3> <button onClick={this.showSonInfo}>子组件事件</button><br/>
<input value={name} onChange={(e)=>{this.setState({name: e.target.value})}}/>
state: name -- {name}
</div>
}
}

运行效果:

代码git: https://gitee.com/loveCode666/study_react/blob/master/src/react_grammar/special_topics/2InvokerSonFunc.js

最新文章

  1. PHP AJAX JSONP实现跨域请求使用实例
  2. if you end up with a boring miserable life
  3. Java中区别.toString() ,(String),valueOf()方法
  4. 记录HttpWebRequest辅助类
  5. python xlwt,xlutils 在excel里面如何插入一行数据
  6. codeforces 425D
  7. 腾讯优测干货精选| 安卓开发新技能Get -常用必备小工具汇总
  8. Java网络编程(UDP协议:接收端)
  9. Java函数参数传递方式详解
  10. 【计算几何初步-线段相交+并查集】【HDU1558】Segment set
  11. PHP测试题讲解(20161027)
  12. python基础 列表 的用法及介绍
  13. 20分钟了解Epoll + 聊天室实战
  14. 在微信小程序中使用图表
  15. 使用Sharding-Proxy进行分库分表
  16. Fisher–Yates shuffle 算法
  17. OK6410移植linux3.3.1
  18. springboot 端口号
  19. 用SCSS需要小心IE对css的几个限制
  20. Linux Kernel源码浏览

热门文章

  1. 用了这么久 IDEA,你竟然不知道 Live Templates ?
  2. python之路43 JavaScript语法BOM与DOM jQuery对比 标签绑定事件
  3. NoClassDefFoundError的两种情况
  4. Spring框架初学习
  5. 听说你想用免费的FOFA?
  6. continue语句-死循环
  7. wsl ubuntu vscode 安装 Fira Code
  8. 重学SpringBoot. step5 再学SpringMVC
  9. 力扣每日一题2023.1.16---1813. 句子相似性 III
  10. springcloud 09 spring cloud gateway01 基本介绍