2017-09-11 1 views
0

私はReact Nativeの初心者です。 私のアプリのスプラッシュ画面を(1秒間)表示し、別の画面にナビゲートしたい。 私はいくつかのチュートリアルに従ってきましたが、エラーが発生しました。ネイティブのスプラッシュ画面に反応し、別の画面に移動します

私のコードは次のようである:

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'); 
    } 

} 

私は新しい画面に移動するには、エラーを得ました。 誰でも助けてくれますか?それとももっと良い解決策がありますか? ありがとうございます。

+0

を試してみてください? –

+0

画面が1秒後にナビゲートしようとしているとき、またはアプリの開始時にエラーが表示されますか? – rabbit87

+0

画面が@ rabbit87をナビゲートしようとしているときにエラーが表示されます。エラーメッセージを忘れました。後でここに投稿します。 – daniel

答えて

0

は誤りである何この

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

こんにちは、ありがとうございます。この機能の使い方を教えてください。レンダリング機能を実装する方法を説明できますか?ありがとうございました – daniel

関連する問題