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 相关文章推荐
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
让AJAX不依赖后端接口实现方案
Dec 03 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
Sep 20 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
AngularJS学习笔记之依赖注入详解
May 16 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
JS实现电商放大镜效果
Aug 24 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
Mar 16 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 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
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
python实现上传下载文件功能
2020/11/19 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
Android面试宝典
2013/08/06 面试题
婚礼新郎父母答谢词
2014/01/16 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
21岁生日感言
2014/02/27 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
党员干部承诺书
2014/03/25 职场文书
竞聘上岗演讲
2014/05/19 职场文书
中职生自荐信范文
2014/06/15 职场文书
学生吸烟检讨书
2014/09/14 职场文书
英文感谢信范文
2015/01/21 职场文书
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
js作用域及作用域链工作引擎
2022/07/07 Javascript