2017-09-11 2 views
0

ich Anfänger sind in der india Reagieren mit. Ich möchte den Begrüßungsbildschirm für meine Apps (für 1 Sekunde) anzeigen und auf einen anderen Bildschirm wechseln. Ich habe gefolgt und kombiniert einige Tutorials, aber ich habe einen Fehler.Reagieren nativen Splash-Screen und navigieren Sie zu verschiedenem Bildschirm

Mein Code ist wie folgt:

class SplashScreen extends React.Component { 
    static navigationOptions = {header: null,} 
    constructor(props){ 
     super(props); 
     this.state = { 
      timePassed: false 
     }; 
    } 

    render() { 
     let that = this; 
     setTimeout(function(){that.setState({timePassed: true})}, 1000); 
     const { navigate } = this.props.navigation; 

     if (!this.state.timePassed){ 
      return (
      <View style={styles.splashContainer}> 
       <Image source={require('./image/splash_screen.png')} style= 
       {styles.splash} /> 
      </View> 
     ); 
    } 
    else{ 
     () => navigate('Login'); 
    } 

} 

ich einen Fehler bekam zum neuen Bildschirm zu navigieren. Kann mir jemand helfen? oder gibt es eine bessere lösung? Danke.

+0

Versuchen Was ist der Fehler? –

+0

Erscheint der Fehler, wenn der Bildschirm gerade navigiert (nach 1 Sekunde) oder gleich zu Beginn der App? – rabbit87

+0

Der Fehler erscheint, wenn der Bildschirm im Begriff ist, zu navigieren @ rabbit87 Ich habe die Fehlermeldung vergessen, wird hier später – daniel

Antwort

0

dieses

class SplashScene extends Component { 
    function timeout(ms) { 
    return new Promise(resolve => setTimeout(resolve, ms)); 
    } 

    async function sleep(fn, ...args) { 
    await timeout(3000); 
    return fn(...args); 
    } 

    resetAndNavigate() { 
    const resetAction = NavigationActions.reset({ 
     index: 0, 
     actions: [ 
     NavigationActions.navigate({ routeName: 'Login'}) 
     ] 
    }) 
    this.props.navigation.dispatch(resetAction) 
    } 
    componentDidMount() { 
    sleep.then(
     this.resetAndNavigate() 
    ) 
    } 
} 
+0

Hallo, danke für deine Antwort. Kannst du mir sagen, wie man diese Funktion benutzt? Ich meine, kannst du erklären, wie man mit der Renderfunktion implementiert? Vielen Dank – daniel

Verwandte Themen