为了账号安全,请及时绑定邮箱和手机立即绑定

react组件方法中的this问题

react组件方法中的this问题

杨魅力 2018-08-14 11:06:31
如上两图:在react组件中,已知其他环境都相同,仅仅是图1多了一层箭头函数,问:为何在本组件的scroll方法中,图1形式取到this是本组件,图2形式this却是undefined?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

https://img1.sycdn.imooc.com//5b86776f00014bf006200327.jpg

查看完整回答
反对 回复 2018-08-29
?
BIG阳

TA贡献1859条经验 获得超6个赞

这个问题得从class说起。
当定义React组件时,extends React.Component时,不会将this继承下来。所以你的第二个图是thisundefined.
而ES6中的arrow function呢,默认在定义的时候会绑定this
使用this一般有两种做法。

  • 直接使用箭头函数

  • 在constructor中绑定。

class {

    constructor() {

        super(...arguments);

        this.myFunction = this.myFunction.bind(this);

    }

    

    render() {

        return(

            <div onClick={this.myFunction}></div>

        )

    }

    

    myFunction() {

        //

    }

}


查看完整回答
反对 回复 2018-08-29
  • 2 回答
  • 0 关注
  • 1050 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信