众所周知,ReactJS组件与组件之间的通信是一个难点。在React实际开发中,父子组件之间的传值是比较常见的,刚入门的小伙伴很容易被组件之间的通信绕懵。 今天花了点时间总结了一下React父子组件之间传值,和vue差不多的思路,父组件向子组件传值,父通过初始state,子组件通过this.props进行接收就可以了;子组件向父组件传值需要绑定一个事件,然后事件是父组件传递过来的this.props.event来进行值的更替。我下面将会用代码进行演示。

父组件向子组件传值:

将父组件的state通过props传入子组件

父组件:

import React, { Component } from 'react'
import Son from './Son'
export default class Father extends Component {
constructor(props) {
super(props);
this.state = {
msg :'我是父组件传过来的值--5'
}
}
render() {
let style02 = {
width:400,
height: 100,
backgroundColor: 'red'
}
return (
<div style={style02}>
<p>父组件</p>
<Son msg = {this.state.msg}/>
</div>
)
}
}

子组件:

import React, { Component } from 'react'
export default class Son extends Component {
render() {
let style01 = {
width:200,
height: 100,
margin: '0 auto',
backgroundColor: 'pink'
}
return (
<div>
<p style={style01}>子组件--- <br/><span>{this.props.msg}</span></p>
</div>
)
}
}

效果图:

子组件向父组件传值:

记住这句话数据在哪,方法就定义在哪!!
子组件:

import React, { Component } from 'react'
export default class Son extends Component {
constructor(props) {
super();
this.state = {
msg:'我是子组件'
}
}
render() {
return (
<div>
<h1>我是子组件</h1>
<button onClick={()=>this.props.handleClick(this.state.msg)}>点击向父组件传值</button>
</div>
)
}
}

父组件:

import React, { Component } from 'react'
import Son from './Son'
export default class Father extends Component {
constructor(props) {
super(props);
this.state = {
msg :'我是父组件传过来的值--5'
}
}
handleClick=(msg)=> {
alert(`这是子组件通过调用父组件传递的方法接受到的msg:${msg}`)
}
render() {
return (
<div>
<Son handleClick = {this.handleClick}/>
</div>
)
}
}

效果:点击按钮向父组件传值。

小结:首先感谢你把这篇博客看完,是不是很简单啊朋友们,哪里不明白的可以在评论区里留言,如果大家对文章有什么建议,欢迎指点。

最新文章

  1. 弹性盒子布局flexbox
  2. Java实验五
  3. MySQL 5.7新特性之Generated Column(函数索引)
  4. July 1st, Week 27th Friday, 2016
  5. ruby的加密方法整理(des rsa加密 加签)
  6. 个人软件过程5 git命令行方式超简洁教程
  7. netstat -an 提示:不是内部或外部命令
  8. LINQ基础 之 LINQ TO SQL (二)
  9. Bluetooth in Android 4.2 and 4.3(三):Enable Bluetooth
  10. RMAN备份FORMAT格式中%的含义
  11. 16进制字符串转换为byte数组
  12. 微软URLRewriter.dll的url重写在.net简单使用
  13. php基础(二)数组
  14. R系列:关联分析;某电商平台的数据;做捆绑销售和商品关联推荐
  15. JS解决通过按钮切换图片的问题
  16. VFP 实验参考答案
  17. 0_Simple__simpleCallback
  18. 《贝贝GO》隐私政策
  19. Oracle导出csv时数字不变成科学计数法
  20. Java虚拟机的最大内存是多少

热门文章

  1. 51nod1113(矩阵快速幂模板)
  2. Sublime Text 3 最新注册码激活码 和 Sublime Text 2 注册码
  3. vue、React Nactive的区别(转载)
  4. js获取当前地址栏的域名、Url、相对路径和参数以及指定参数
  5. Python学习笔记(yield与装饰器)
  6. code blocks无法输出中文解决方法
  7. Codeforces 140D(贪心)
  8. Codeforces 1163D(kmp、dp)
  9. HTML——制作一个简易菜单栏
  10. SpringBoot---核心---日志配置