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 this 的一些学习总结
Aug 02 Javascript
js播放wav文件(源码)
Apr 22 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
悬浮数字的实现案例
Feb 19 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
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中autoload的用法总结
2013/11/08 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
查询优化的一般准则有哪些
2015/03/08 面试题
幼师自荐信
2013/10/26 职场文书
企业申诉管理制度
2014/01/30 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
工作所在部门证明
2014/09/21 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
人大代表选举标语
2014/10/07 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
导游词之千岛湖
2019/09/23 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Python如何将list中的string转换为int
2022/07/15 Ruby
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技