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 相关文章推荐
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
Sep 19 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
JS操作Cookie写入和读取实例代码
Oct 20 Javascript
javascript 用函数语句和表达式定义函数的区别详解
Jan 06 Javascript
Javascript基础教程之JavaScript语法
Jan 18 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
Sep 14 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
小程序实现分类页
Jul 12 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 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的开合式多级菜单程序
2006/10/09 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP无限分类(树形类)
2013/09/28 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
实例教学如何写vue插件
2017/11/30 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
JS实现小米轮播图
2020/09/21 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python爬取天气数据的实例详解
2020/11/20 Python
Python中pass语句的作用是什么
2016/06/01 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
财务管理专业推荐信
2013/11/19 职场文书
入学申请自荐信范文
2014/02/26 职场文书
大课间体育活动方案
2014/03/12 职场文书
党员承诺书内容
2014/03/26 职场文书
个人批评与自我批评
2014/10/15 职场文书
财务部会计岗位职责
2015/02/03 职场文书
党员活动总结
2015/02/04 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL