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面向对象设计一 工厂模式
Dec 20 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
Javascript中各种trim的实现详细解析
Dec 10 Javascript
浅谈JavaScript中null和undefined
Jul 09 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
详解jQuery简单的表单应用
Dec 16 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
Jun 28 Javascript
基于node下的http小爬虫的示例代码
Jan 11 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
JS中async/await实现异步调用的方法
Aug 28 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
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python中urllib模块用法实例详解
2014/11/19 Python
详解Python中的join()函数的用法
2015/04/07 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python用字典构建多级菜单功能
2019/07/11 Python
python之yield和Generator深入解析
2019/09/18 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
策划主管的工作职责
2013/11/24 职场文书
24岁生日感言
2014/01/13 职场文书
公益活动邀请函
2014/02/05 职场文书
高中生家长寄语大全
2014/04/03 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
大学生实习推荐信
2015/03/27 职场文书
物业接待员岗位职责
2015/04/15 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
岁月神偷观后感
2015/06/11 职场文书