Я пытаюсь создать заставку, которая загружается первой при запуске приложения.Я создаю его с сохранением.Исходное состояние - Заставка .Splash имеет функцию, чтобы проверить, работает ли он впервые. setTopLevelNavigator перенаправляет на постоянный экран.После заставки он должен перейти к сохраненному экрану.Я не уверен, как я могу реализовать загрузку заставки в первую очередь.Любая помощь будет отличной!
render() {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<AppWithNavigationState
ref={ref => setTopLevelNavigator(ref)}
/>
</PersistGate>
</Provider>
);
}
Это заставка
class SplashScreen extends Component {
constructor(props) {
super(props);
this.state = {
fadeAnim: new Animated.Value(0),
};
}
async componentDidMount() {
const {
settings,
navigation,
} = this.props;
if (settings.firstRun) {
const { fadeAnim } = this.state;
Animated.timing(
fadeAnim,
{
toValue: 1,
duration: 2000,
},
).start();
} else {
const { fadeAnim } = this.state;
fadeAnim.setValue(1);
Animated.timing(
fadeAnim,
{
toValue: 0.01,
duration: 1000,
easing: Easing.inOut(Easing.ease),
},
).start();
setTimeout(() => {
navigation.replace('Home');
}, 1000);
}
}
onScroll =() => {
const { navigation } = this.props;
navigation.navigate('Intro');
}
render() {
const { fadeAnim } = this.state;
return (
<TouchableWithoutFeedback
onPress={this.onScroll}
>
<View style={styles.container}>
{ Platform.OS === 'ios'
? <StatusBar barStyle="light-content" />
: <StatusBar hidden />
}
<ScrollView
horizontal
onMomentumScrollBegin={this.onScroll}
>
<AnimateImage
fadeAnim={fadeAnim}
/>
</ScrollView>
</View>
</TouchableWithoutFeedback>
);
}
}