Как скрыть заставку после загрузки приложения в react native с помощью react-native-router-flux

#react-native

#react-native

Вопрос:

В моем приложении есть экран-заставка, и через 5 секунд он перейдет на другой экран.

Я хочу, чтобы экран-заставка отображался только в первый раз при загрузке приложения, и как только пользователь выходит из приложения и открывает его, он не должен показывать экран-заставку.

Вот мой код

 import React, { Component } from 'react';
import { View, ImageBackground, StyleSheet, BackHandler, Alert } from 'react-native';
import { Actions } from 'react-native-router-flux';
import colors from '../styles/colors';

class SplashScreen extends Component {

    componentDidMount() {
        // Start counting when the page is loaded
        this.timeoutHandle = setTimeout(() => {
            Actions.welcome()
        }, 5000);
    }

    render() {
        return (
            <View style={styles.container}>
                <ImageBackground
                    source={require('../assets/BSWH-splash.jpg')}
                    style={styles.backgroundImage}
                />
            </View>
        );
    }
}
const styles = StyleSheet.create({
    container: {
        flex: 1,
    },
    backgroundImage: {
        resizeMode: 'stretch',
        flex: 1,
    },
    logoText: {
        fontSize: 34,
        color: colors.white,
        margin: 10,
    },
});
export default SplashScreen;
  

Я использовал react-native-router-flux для навигации

пожалуйста, помогите мне, как скрыть экран-заставку после загрузки приложения.

Ответ №1:

Это обходной путь, который вы используете. Попробуйте использовать пакет npm, чтобы получить идеальный результат, а лучший пакет npm — это crazycodeboy / react-native-splash-screen

Там вы можете скрыть экран-заставку в методе componentDidMount с Splashscreen.hide() функцией.

Но если вы все еще хотите использовать этот метод, вы можете попробовать

 componentDidMount() {
    setTimeout( () => {this.load()}, 2500);       
    }
    load = () => {
      Actions.StartOrder()   //Go to StartOrder screen in 2500ms or 2.5secs
    }

  

Здесь метод setTimeout() из JS поможет вам перенаправить на определенный экран в указанный вами интервал!!