Ich versuche, einen Ladebildschirm in React Native zu erstellen, die zu einem Bestätigungsbildschirm navigieren wird, sobald die Zeit von einer SetTimeout-Funktion erfüllt wurde. Momentan wird der Bildschirm geladen, navigiert jedoch nicht zum Bestätigungsbildschirm nach dem setTimeout-Intervall.Navigieren zu einer anderen Komponente mit setTimeout wird nicht ausgeführt
import React from 'react';
import { Text, View, Image } from 'react-native';
import { Actions as NavigationActions } from 'react-native-router-
flux';
import styles from './styles';
export default class ProcessingLoader extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
componentDidMount() {
setTimeout(this.navigateToConfirmation, 3000);
}
navigateToConfirmation() {
NavigationActions.checkoutConfirmation({ product: this.props.product, type: 'reset' });
}
renderLoader() {
return (
<View style={styles.textContainer}>
<Text style={styles.loaderText}>Processing Order ...</Text>
</View>
);
}
render() {
return (
<View style={{ flex: 1 }}>
{this.renderLoader()}
</View>
);
}
}
Ich habe versucht, SetTimeout in ComponentDidMount sowie in Render. Ich habe auch versucht, und pfeil funktion vs nicht mit einer pfeil funktion. Setze ich setTimeout hier komplett falsch? Ich habe Angst, dass ich nicht verstehe, warum es nicht nach 3 Sekunden zum nächsten Bildschirm navigiert. Danke im Voraus!
immer Sollte mit dem 'this' Stichwort vorsichtig sein in Javascript ... Kontexte sind [seltsam] (https://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work), siehe [das Problem] (https: //developer.mozilla .org/de-DE/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout # The_this_problem) in 'setTimeout()' MDN (beachten Sie, dass der Abschnitt die @ Chris Antwort unten behandelt) –
Danke, @PatrickBarr! –