<MyButton onPress={() => {doSomething(data)} }>
Этот блок кода использует функцию ES6 Arrow; который является другим способом объявления функции в javascript. Кроме того, область действия функции в функции стрелки зависит от того, где была создана функция, в отличие от обычного правила области видимости this
, которое по умолчанию зависит от , как функция была вызвана.
<MyButton onPress={ this.doSomething.bind(this) }>
Это утверждение делает вызов doSomething
метода. Но поскольку регистрация события выполняется на другом элементе, область doSomething
отличается и принудительно привязана с использованием метода bind
в javascript.
Кроме того, во втором методе вы не передаете параметр данных, который вы можете передать с помощью второго аргумента методу, показанному ниже.
<MyButton onPress={ this.doSomething.bind(this, data)} }>