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 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
模仿jQuery each函数的链式调用
Jul 22 Javascript
js DOM 元素ID就是全局变量
Sep 20 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
Jan 24 Javascript
AngularJS ng-bind-template 指令详解
Jul 30 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
JavaScript事件处理程序详解
Sep 19 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
安装vue-cli的简易过程
May 22 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
Nov 02 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
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
PHP中16个高危函数整理
2019/09/19 PHP
FCK调用方法..
2006/12/21 Javascript
Javascript与flash交互通信基础教程
2008/08/07 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
python动态加载包的方法小结
2016/04/18 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python删除过期log文件操作实例解析
2018/01/31 Python
python编写微信公众号首图思路详解
2019/12/13 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
中科方德软件测试面试题
2016/04/21 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
四个太阳教学反思
2014/02/01 职场文书
高二物理教学反思
2014/02/08 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
求职信范文大全
2014/05/26 职场文书
办理房产证委托书
2014/09/18 职场文书
个人工作表现评价材料
2014/09/21 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
升学宴学生致辞
2015/07/27 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS