Тестирование this.props.navigation - PullRequest
0 голосов
/ 02 июня 2018
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.Я не нашел ничего, что решило бы проблему.

1 Ответ

0 голосов
/ 02 июня 2018

В Javascript значение this внутри функции зависит от того, как эта функция вызывается.

Узнайте, как привязка this работает в JavaScript здесь

Есть несколько способов добиться этого.Используйте их и посмотрите, получите ли вы this как неопределенное в функции или нет.

Один из них - добавление this.onPressItem = this.onPressItem.bind(this); в конструктор.

Другой - функции стрелок

onPressItem= (event) => {this.props.navigation.navigate('sectors'); }

А затем есть onPress={this.onPressItem.bind(this)}.

Более подробную информацию вы можете найти здесь

Также, пожалуйста, просмотрите эту статью Не используйте привязку при прохождении реквизита

...