У меня есть компонент с методами render и onPress, описанными ниже...
onCardPressed(event) {
console.info(this.props);
const { data } = this.props;
console.info(event, data);
}
render() {
const { data } = this.props;
return (
<TouchableOpacity
onPress = {this.onCardPressed}
>
<Container style = {{ elevation: 5 }}>
<SectionTitle>
This is a
{` ${data.city} `}
card
</SectionTitle>
</Container>
</TouchableOpacity>
);
}
В этом примере карточка будет правильно отображаться This is a London card, но в методе onPress this.props возвращает undefined.
Как я могу получить доступ к объекту this.props для оценки?
Это проблема правильной привязки функции к области видимости. Ниже ответ правильный.





Вы можете исправить это двумя способами. Аргумент в пользу добавления этих строк в конструктор заключается в том, что новые связанные функции создаются только один раз для каждого экземпляра класса. Вы также можете использовать
onPress = {this.onCardPressed.bind(this)}
или (ES6):
onPress = {() => this.onCardPressed()}
Возможный дубликат это значение равно null в функции (React-Native)