Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React本机组件回调函数_Javascript_Reactjs_React Native - Fatal编程技术网

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 = () => { ... }