React 子组件向父组件传值的方法


Posted in Javascript onJuly 24, 2017

本文介绍了React 子组件向父组件传值的方法,分享给大家

子组件需要控制自己的 state, 然后告诉父组件自己的state,通过props调用父组件中用来控制state的函数,在父组件中展示子组件的state变化。

/***实现在输入框输入邮箱时,在div中即时显示输入内容***/


<body>
  <div id="test"></div>
</body>

//子组件
var Child = React.createClass({
  render: function(){
    return (
      <div>
        邮箱:<input onChange={this.props.handleEmail}/>
      </div>
    )
  }
});

//父组件
var Parent = React.createClass({
  getInitialState: function(){
    return {
      email: ''
    }
  },
  handleEmail: function(event){
    this.setState({email: event.target.value});
  },
  render: function(){
    return (
      <div>
        <div>邮箱:{this.state.email}</div>
        <Child name="email" handleEmail={this.handleEmail.bind(this)}/>
      </div>
    )
  }
});
React.render(
 <Parent />,
 document.getElementById('test')
);

原理:

依赖 props 来传递事件的引用,并通过回调的方式来实现的,这样实现不是特别好,但在没有任何工具的情况下是一种简单的实现方式。

分析:

React中当state发生改变时,组件才会update。在父组件中设定state的初始值以及处理该state的函数,同时将函数名通过以props属性值的形式传入子组件,子组件通过调用父组件的函数,进而引起state变化,达到在父组件中展示子组件产生的变化。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
详细解密jsonp跨域请求
Apr 15 Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
Vue组件化开发思考
Feb 02 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
vue父子组件通信的高级用法示例
Aug 29 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
Oct 30 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 #Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 #Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 #jQuery
php register_shutdown_function函数详解
Jul 23 #Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 #Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 #Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 #jQuery
You might like
简单采集了yahoo的一些数据
2007/02/14 PHP
php文件操作实例代码
2012/05/10 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
Javascript 对象的解释
2008/11/24 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
动态创建类实例代码
2009/10/07 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python制作爬虫采集小说
2015/10/25 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
运动会入场词100字
2014/02/06 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
战略合作协议书范本
2014/04/18 职场文书
员工安全生产承诺书
2014/05/22 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang