ES6下子组件调用父组件的方法(推荐)


Posted in Javascript onFebruary 23, 2018

出于某些目的,最近又开始研究起了RN,看着教程一步步的学习,在最近却是碰到了一个问题,那就是父子组件的方法调用的问题。

这个问题我百度了很久,JS的ES6语法下,用class创建组件,子组件调用父组件方法模拟器不断报错。

因为我看的视频是基于es5的语法来实现的代码,所以语法有些不同。

es5的语法下,方法的this都是RN已经帮我们处理好了的,所以按照视频中的示例是可以达成效果的,但是es6貌似是要自己写的。。

具体的写法就是在constructor中添加 this.xxxxx = this.xxxxx.bind(this);

或者在子组件绑定的时候就写this.xxxxx.bind(this) .

这里就不多讲了,下面上代码,以供需要的人参考。

export default class TestPrj extends Component {
    constructor(props){
      super(props);
      this.timesReset = this.timesReset.bind(this);
      this.state = {timex:2};
    }
    timesReset(){
      this.setState({
        timex:0
      });
    }
    render() {
      return(
        <View style={styles.container}>
          <Son ref="Son1" timex={this.state.timex} timesReset={this.timesReset}/>
          //或者<Son ref="Son1" timex={this.state.timex} timesReset={this.timesReset.bind(this)}/>
        </View>
      );
    }
  }
 class Son extends Component{
  
  constructor(props){
    super(props);
    this.state = {times:this.props.timex};
  }
  componentWillReceiveProps(props){
    console.log(this.props);
    this.setState({
      times:props.timex
    })
  }
  timesReset(){
    this.props.timesReset();
  }
  render(){
    return(
    <View style={styles.container}>
      <Text style={styles.instructions}>
      儿子:虽然你揍了我 {this.state.times} 次,但是我 永 不 屈 服!!
      </Text>
      <TouchableHighlight style={styles.btn} underlayColor={'pink'} onPress={this.timesReset.bind(this)}>
        <Text style={{textAlign:'center'}}>爹,再给你儿子一次机会!!</Text>
      </TouchableHighlight>
    </View>
    );
  }
}

以上这篇ES6下子组件调用父组件的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让浏览器非阻塞加载javascript的几种方法小结
Apr 25 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
JS克隆,属性,数组,对象,函数实例分析
Nov 26 Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
详解vue+css3做交互特效的方法
Nov 20 Javascript
详解微信小程序实现WebSocket心跳重连
Jul 31 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
vue项目中引入vue-datepicker插件的详解
May 14 Javascript
angular动态表单制作
Feb 23 #Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 #Javascript
浅谈vuejs实现数据驱动视图原理
Feb 23 #Javascript
Vue父组件调用子组件事件方法
Feb 23 #Javascript
vue实现密码显示隐藏切换功能
Feb 23 #Javascript
对vue.js中this.$emit的深入理解
Feb 23 #Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 #Javascript
You might like
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
python类和函数中使用静态变量的方法
2015/05/09 Python
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
详解python中requirements.txt的一切
2017/03/03 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
python config文件的读写操作示例
2019/09/27 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
外企C语言笔试题
2013/11/10 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
工作表现自我评价
2014/02/08 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
学校读书活动总结
2014/06/30 职场文书
入党函调证明材料
2015/06/19 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js