как перейти к экрану до создания навигатора стека?

#typescript #react-native #expo

#typescript #react-native #выставка

Вопрос:

Я новичок в react и, по сути, использую Expo для создания приложения. Я выбрал настройку TypeScript с вкладками и навигатором, уже реализованными при запуске «expo init NewApp». У меня просто есть экран перехода, который я хочу отобразить на несколько секунд, прежде чем перейти к корню приложения, который является просто компонентом, уже предоставленным мне Expo (из шаблона, он содержит tabonescreen.tsx и tabtwoscreen.tsx ).

Однако я не уверен, как создать новый навигатор стека, и я считаю, что это излишне для данной ситуации.

Что мне делать? Как мне перейти к корню после отображения перехода:

App.tsx

 import React, { useState } from 'react';
import useCachedResources from './hooks/useCachedResources';
import TransitionScreen from './screens/TransitionScreen';


// A root stack navigator is often used for displaying modals on top of all other content
// Read more here: https://reactnavigation.org/docs/modal
export default function App() {
  const isLoadingComplete = useCachedResources();

  if (!isLoadingComplete) {
    return null;
  } else {
    return (
      
      <TransitionScreen/>
    );
  }
}

 

TransitionScreen.tsx

 import React from 'react';
import {StyleSheet, View, Image } from 'react-native';

export default function TransitionScreen() {
    return(
      <View style={styles.container}>
        <Image
          style={styles.calpalLogo}
          source={require('../assets/images/calpal.png')}
        />  
        {
            setTimeout(() => {
                //GO TO tabonescreen.tsx/root of the app
            }, 5000)
        }
      </View>
    )
  }


  const styles = StyleSheet.create({
    container: {
      flex: 1,
      backgroundColor: '#FAFAFA',
      alignItems: 'center',
      justifyContent: 'center',
    },
    calpalLogo: {
      width:'100%',
      height:'60%',
    }
  });
  

 

Ответ №1:

Вы должны вернуть свой навигатор после завершения загрузки, чтобы, пока он загружается, отображался ваш переход, и когда он завершит загрузку, вы получите свой навигатор и сможете нормально перемещаться. Если вы хотите, чтобы ваш навигатор поместил лучший код.

 export default function App() {
  const isLoadingComplete = useCachedResources();

  if (!isLoadingComplete) {
    return <YourNavigator/>;
  } else {
    return (
      
      <TransitionScreen/>
    );
  }
}