Реагировать на собственную навигацию между функциональными компонентами? - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь перейти к главному экрану при нажатии кнопки входа в систему при входе в систему. js. LoginForm загружается отлично, но когда я нажимаю кнопку, я получаю сообщение об ошибке «Ошибка типа: Undefined не является объектом (оценка 'navigation.navigate'). Раньше это не было проблемой, но это изменилось, когда я переместил Login в другой компонент. I получала другую ошибку, и я прошел через это, но это не помогло: Получение undefined не является объектом, оценивающим _this.props.navigation Дайте мне знать, если вам нужен весь код. Спасибо:)

LoginForm. js

...
import Login from "./Login";

const LoginForm = props => {
  return <Login />
}
...

Вход. js

const Login = ({ navigation }) => {
 return (
  <TouchableOpacity
    style={{ marginTop: 20 }}
    activeOpacity={1}
    onPress={() => navigation.navigate("Main")}
  >
    <View style={styles.loginButtonContainer}>
      <Text style={styles.loginButtonText}>Login</Text>
    </View>
  </TouchableOpacity>
  )}
...

1 Ответ

0 голосов
/ 14 января 2020

Я исправил это с помощью Навигации. https://reactnavigation.org/docs/en/with-navigation.html

withNavigation - компонент более высокого порядка, который передает навигационную опору в упакованный компонент. Это полезно, когда вы не можете передать навигационную реквизит непосредственно в компонент или не хотите передавать ее в случае глубоко вложенного дочернего элемента.

Login. js

import { withNavigation } from 'react-navigation'

const Login = ({ navigation }) => {
...
}

export default withNavigation(Login)

В любом случае, если это возможно, я бы хотел знать, как это исправить без этого.

...