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 相关文章推荐
greybox——不开新窗口看新的网页
Feb 20 Javascript
(function(){})()的用法与优点
Mar 11 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
Feb 17 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
原生JS实现的雪花飘落动画效果
May 03 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
前端性能优化建议
Sep 17 Javascript
利用javaScript处理常用事件详解
Apr 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
Js 中debug方式
2010/02/07 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
极简的Python入门指引
2015/04/01 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
食品流通安全承诺书
2014/05/22 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书