la question est simple Je sais qu'il y a beaucoup de réponses disponibles pour la même question mais j'ai réglé différemment ma propre App.js
fichier j'ai essayé presque tous mais sans succès.
donc mon App.js
ressemble à ça
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View,
StatusBar
} from 'react-native';
import { createStackNavigator } from 'react-navigation';
import { Header, Button, Spinner } from './src/components/comman';
import SplashScreen from 'react-native-splash-screen';
import LoginForm from './src/components/LoginForm';
import SignupForm from './src/components/SignupForm';
import Home from './src/components/Home';
import ForgetPassword from './src/components/ForgetPassword';
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
const App = createStackNavigator ({
Login: { screen: LoginForm },
Home: { screen: Home },
Signup: { screen: SignupForm },
ForgetPassword: { screen : ForgetPassword },
},
{
initialRouteName: 'Login',
});
export default App;
Maintenant, je stocke l'état de connexion dans AsyncStorage
dans mon LoginForm.js
comme ça
.
.
AsyncStorage.setItem('isLoggedIn', 'true').then((a) => {
this.onLoginSuccess(responseData.user_id);
});
.
.
alors maintenant je veux définir initialRouteName
en fonction de mon élément de stockage local. Simple si isLoggedIn
est true
alors initialRouteName : Home
autrement initialRouteName : Login
Simple mais ne savez pas comment l'utiliser dans my
App.js
S'il vous plaît, aidez :)
Comme vous pouvez le voir ici :
Si vous devez définir initialRouteName comme accessoire, c'est parce qu'il y a des données que vous devez récupérer de manière asynchrone avant de rendre la navigation de l'application. une autre façon de gérer cela est d'utiliser un commutateur de navigation et d'avoir un écran que vous affichez lorsque vous récupérez les données asynchrones, puis accédez à l'itinéraire initial approprié avec des paramètres si nécessaire. voir docs pour un exemple complet de cela.
Et ceci est un ouvert RFC
Jetez un oeil à ici .
Vous trouverez plus de description!