#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 поможет вам перенаправить на определенный экран в указанный вами интервал!!