Не удается прочитать свойство 'navigate' из неопределенного в .then () => {} - PullRequest
0 голосов
/ 02 октября 2019

Почему я не могу перейти к экрану «Приложение» в следующем коде. Я получаю сообщение об ошибке:

Не удается прочитать свойство 'навигация' из неопределенного

  async signIn() {
    const { username, password } = this.state
    await Auth.signIn(username, password)
    .then(user => {
      this.setState({ user })
      this.props.navigation.navigate("App");
      Alert.alert('Signed In Successful!')
    })
    .catch(err => {
        console.log('Error when signing in: ', err)
        Alert.alert('Error when signing in: ', err)
    })
  }
}

1 Ответ

1 голос
/ 02 октября 2019

Вы смешиваете обещания и ждете. Вы либо ожидаете входа в систему, либо удаляете асинхронное / ожидание и рассматриваете его как обещание. Кроме того, возможно, вы не связали функцию, поэтому «this» указывает на неопределенное значение.

Либо:

async signIn = () => {
    const { username, password } = this.state
    let user = await Auth.signIn(username, password);
     this.setState({ user })
      this.props.navigation.navigate("App");
      Alert.alert('Signed In Successful!')

  }
}

Или

signIn = () => {
    const { username, password } = this.state
    Auth.signIn(username, password)
    .then(user => {
      this.setState({ user })
      this.props.navigation.navigate("App");
      Alert.alert('Signed In Successful!')
    })
    .catch(err => {
        console.log('Error when signing in: ', err)
        Alert.alert('Error when signing in: ', err)
    })
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...