Mon application devrait avoir un écran de connexion, avec Google, de sorte qu'une fois connecté, l'écran de menu s'affiche.
afin de ne pas revenir à l'écran de connexion lorsque l'on appuie sur le bouton retour, après avoir accédé à l'écran de menu après l'authentification. J'ai séparé les piles, une pour l'écran de connexion et une pour les autres écrans.
dans App.js :
const AuthStack = createStackNavigator({
LoginSplashScreen: LoginSplashScreen
});
const AppStack = createStackNavigator({
MenuScreen:MenuScreen,
DetailsScreen: DetailsScreen,
PhotoScreen: PhotoScreen,
DocumentScreen: DocumentScreen,
AudioScreen: AudioScreen,
ScheduleScreen: ScheduleScreen,
SettingsScreen: SettingsScreen,
FilesScreen: FilesScreen,
GalleryScreen: GalleryScreen
});
const Root= createAppContainer(createSwitchNavigator(
{
AuthStack:AuthStack,
AppStack:AppStack
},
{
initialRouteName: 'AuthStack',
}
));
export default class App extends React.Component {
render() {
return (
<Root/>
)
}
}
donc dans le LoginSplashScreen après l'authentification, j'ai utilisé ce code pour naviguer :
this.props.navigation.navigate('AppStack', {
signedIn: true,
name: result.user.name,
photoUrl: result.user.photoUrl
});
la navigation fonctionne bien, mais les paramètres 'name', 'signedIn', 'photoUrl' ne passent pas en fait, lors de l'alerte
Alert.alert('',JSON.stringify(this.props.navigation.state.params))
sur l'écran de menu (deuxième pile), il est vide
Qu'est-ce que je fais de travers ?
pourquoi mes paramètres ne passent pas ? parce que je pourrais avoir besoin d'un autre tiroir de navigation .
Existe-t-il un moyen de définir des paramètres globaux pour tous les écrans de l'application ?
Existe-t-il un meilleur moyen d'éviter d'appuyer sur la touche retour de l'écran de menu et de ne pas obtenir l'écran de connexion ?
EDIT :
J'ai réussi à résoudre ce problème spécifique en définissant un paramètre global avec :
global.param= result.param;
Mais j'ai toujours besoin d'une réponse pour passer entre deux piles séparées.