事件监听中this的用法

jojo
  • 82
class PauseMenu extends React.Component{
    componentWillMount(){
        AppStateIOS.addEventListener('change', this.onAppPaused.bind(this));
    }
    onAppPaused(event){
    }
}

为什么上面的做法是错误的,而要单独把绑定的函数写成

class PauseMenu extends React.Component{
    constructor(props){
        super(props);
        this._onAppPaused = this.onAppPaused.bind(this);
    }
    componentWillMount(){
        AppStateIOS.addEventListener('change', this._onAppPaused);
    }
    onAppPaused(event){
    }
}

回复
阅读 1.5k
2 个回答
✓ 已被采纳

你在使用bind(this)之前使用了this.onAppPaused,那bind(this)这一步就没有意义了呀。现在绑定函数更多的使用箭头函数来处理:

AppStateIOS.addEventListener('change', (e) => this._onAppPaused(e, otherData));

本身你监听的回调函数this就是被监听者,你用自己去绑定自己,有什么用?

你知道吗?

宣传栏