import React from 'react';
import ListElements from '../Components/ListElements';
class HospitalsScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
Hospitals: ['Hospital de Base','Hospital Regional de Taguatinga','Hospital da Ceilandia','Clínica']
};
}
onPressItem() {
this.props.navigation.navigate('sectors');
}
render() {
return (
<ListElements
list = {this.state.Hospitals}
title='Hospitais'
onPress = {this.onPressItem.bind(this)}
/>
);
}
}
export default HospitalsScreen;
У меня возникли проблемы с тестированием этого экрана в функции _onPress. Я не нашел ничего, что решало бы проблему.
Я использую реагирующую навигацию. Проблема в том, что я не могу найти способ проверить это, всегда выдает ошибку «не могу прочитать свойства свойства undefined».



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В Javascript значение this внутри функции зависит от того, как эта функция вызывается.
Узнайте, как привязка this работает в JavaScript здесь
Есть несколько способов добиться этого. Используйте их и посмотрите, получите ли вы this как неопределенное в функции или нет.
Один из них - добавить this.onPressItem = this.onPressItem.bind(this); в конструктор.
Другой - стрелочные функции
onPressItem= (event) =>
{this.props.navigation.navigate('sectors');
}
А еще есть onPress = {this.onPressItem.bind(this)}.
Вы можете найти более подробную информацию здесь
Также просмотрите эту статью Не используйте привязку при передаче реквизита
в чем ошибка? вы можете опубликовать метод навигации или имя библиотеки, которое вы используете для навигации?