小编典典

React Native组件回调函数

reactjs

在组件中,我已经看到了执行回调的不同方法。之间有什么区别?

<MyButton onPress={ () => {doSomething(data)} }>

<MyButton onPress={ this.doSomething.bind(this) }>

阅读 557

收藏
2020-07-22

共1个答案

小编典典

<MyButton onPress={ () => {doSomething(data)} }>

该代码块使用ES6箭头功能;这是在javascript中声明函数的另一种方式。另外,thisin
arrow函数的作用域取决于函数的创建位置,而this默认情况下,普通作用域规则取决于 函数的调用方式

<MyButton onPress={ this.doSomething.bind(this) }>

该语句调用doSomething方法。但是由于事件注册是在不同的元素上完成的,因此Scope的范围doSomething是不同的,并且通过使用bindjavascript中的方法被强制绑定。

同样,在第二种方法中,您没有传递data参数,可以使用第二个参数将其传递给如下所示的方法。

<MyButton onPress={ this.doSomething.bind(this, data)} }>

2020-07-22