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 相关文章推荐
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
JS命令模式例子之菜单程序
Oct 10 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
JavaScript Tab菜单实现过程解析
May 13 Javascript
浅谈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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
副总经理任命书
2014/06/05 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
HTML基础详解(下)
2021/10/16 HTML / CSS