Javascript React本机组件回调函数
在组件中,我看到了不同的回调方法。以下两者之间的区别是什么:Javascript React本机组件回调函数,javascript,reactjs,react-native,Javascript,Reactjs,React Native,在组件中,我看到了不同的回调方法。以下两者之间的区别是什么: <MyButton onPress={ () => {doSomething(data)} }> {doSomething(数据)}}> 及 {doSomething(data)}}> <MyButton onPress={ () => {doSomething(data)} }> 此代码块使用ES6箭头功能;这是在javascript中声明函数的另一种方式。此外,箭头函数中的此的范围取决
<MyButton onPress={ () => {doSomething(data)} }>
{doSomething(数据)}}>
及
{doSomething(data)}}>
<MyButton onPress={ () => {doSomething(data)} }>
此代码块使用ES6箭头功能;这是在javascript中声明函数的另一种方式。此外,箭头函数中的此
的范围取决于函数的创建位置,而此
的正常范围规则默认情况下取决于函数的调用方式
此语句调用doSomething
方法。但是由于事件注册是在不同的元素上完成的,doSomething
的范围是不同的,并且在javascript中使用bind
方法强制绑定
另外,在第二个方法中,您没有传递数据参数,您可以使用第二个参数将其传递给如下所示的方法
正在调用对已在类中定义的命名函数的引用。只有在使用类函数(我的意思是非ES6 arrow函数)时,才需要绑定到它
不需要.bind(this)
,因为箭头函数绑定为on
你应该仔细阅读
<MyButton onPress={ () => {doSomething(data)} }>
<MyButton onPress={ this.doSomething.bind(this) }>
const doSomething = () => { ... }