У меня есть компонент кнопки в собственном приложении, где я использую 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>
)
}
}