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事件(Event)知识整理
Oct 11 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
Jan 23 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
bootstrap中selectpicker下拉框使用方法实例
Mar 22 Javascript
layui 表格的属性的显示转换方法
Aug 14 Javascript
Angular实现svg和png图片下载实现
May 05 Javascript
three.js着色器材质的内置变量示例详解
Aug 16 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 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
星际争霸秘籍
2020/03/04 星际争霸
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php表单提交实例讲解
2015/11/12 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python多线程爬虫简单示例
2016/03/04 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
五好家庭事迹材料
2014/12/20 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python