Ошибка типа: undefined не является объектом (оценка 'this3.props') - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь использовать реактивную навигацию в моем приложении RN с выставкой. Но когда я пытаюсь передать << this.props.navigation.navigate («Деталь»); >> к моему TouchableOpacity onPress, я получил такую ​​ошибку:

TypeError: undefined не является объектом (оценивает 'this3.props')

Under is my код (под всем кодом находится внутри оператора for, переменная count используется в операторе for)

lecture_name = lecture_name.slice(1, lecture_name.lastIndexOf('('))
const lecture_value = Value_list[count].slice(4)
all_TO.push(
          <TouchableOpacity
            style={styles.button} key={lecture_value}
            onPress={
              () => {
                // test_to_educlass(lecture_value);
                // test_toRender();
                this.props.navigation.navigate("Detail");
              }
            }
          >
            <Text> {lecture_name} </Text>
          </TouchableOpacity>
          )

После некоторого поиска я обнаружил, что не могу получить доступ к this.props в функции , но я не нашел ответа на мой код.

Кто-нибудь может мне помочь, пожалуйста?

1 Ответ

0 голосов
/ 23 апреля 2020

Обновление: в исходном коде перед импортом useNavigation вы можете создать новую функцию onPress в качестве обратного вызова и добавить привязку this в свой конструктор.

constructor(props) {
    super(props);
    this.onPress = this.onPress.bind(this);
  }

 onPress() {
  this.props.navigation.navigate("Detail");
  }

<TouchableOpacity
  style={styles.button}
  key={lecture_value}
  onPress={() => this.onPress()}
>
  <Text> {lecture_name} </Text>
</TouchableOpacity>;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...