Реагировать на встроенную навигацию undefined, показывая необработанное отклонение обещания - PullRequest
1 голос
/ 10 июня 2019

У меня есть компонент кнопки в собственном приложении, где я использую onPress и вызываю функцию. Я хочу, чтобы функция была выполнена, и после выполнения я хочу перейти на новую страницу. Но когда я пытаюсь сделать это, это показывает необработанное отклонение обещания и Cannot read property 'navigate' of undefined. Вот функция, которую я вызываю с кнопки:

acceptAction = async (id) => {
    await this.refaccept.doc(id + '').get().then(doc => {
      if (!doc.exists) {
        this.ref.doc(id + '').get().then(doc => {
          const jobData1 = doc.data()
          this.refaccept.doc(id + '').set({
            driverid: this.state.userId,
            address: jobData1.address,
            distance: jobData1.distance,
            pickupdate: jobData1.pickupdate,
            pickuptime: jobData1.pickuptime

          }).then(function () {
            console.log("Document successfully set!");
            
          }).catch(function (error) {
            console.error("Error setting document: ", error);
          });
        })
      } else {
        alert('This job is already taken')
      }
    })
   this.props.navigation.navigate('LocationTrack', {
      id: this.state.id,
    })
  }

 render() {
    const { id } = this.props
    return (
      <View style={{ width: '100%' }}>
        <View style={{ paddingTop: 10, paddingBottom: 10 }}>
          <TouchableOpacity>
            <Button onPress={() => this.acceptAction(id)}>
              <Text >Accept</Text>
            </Button>
          </TouchableOpacity>
          
        </View>
      </View>
    )
  }
}

1 Ответ

1 голос
/ 11 июня 2019

Хорошо, я не знаю, правильно ли это, но с помощью Navigation удалось решить проблему.

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