2 votes

React native Wix Navigation.push possible unhandled promise rejection : Error : Échec de l'exécution de la commande de la pile.

React native Wix Navigation.push possible unhandled promise rejection : Error : Échec de l'exécution de la commande de la pile.

Login.js

signUpLink =(screenName) => {

          Navigation.push(this.props.componentId, {
  component: {
    name: screenName,
  }
});

    }

 <TouchableOpacity style={styles.buttonText}   onPress={this.signUpLink('videostreme.SignUpScreen')}>
                <Text style={styles.signUpText} >First time here?? Sign Up</Text>
                </TouchableOpacity>

index.js

Navigation.registerComponent('videostreme.LoginScreen', () => Login);
Navigation.registerComponent('videostreme.MainScreen', () => Main);
Navigation.registerComponent('videostreme.SignUpScreen', () => SignUp);
Navigation.registerComponent('videostreme.SplashScreen', () => Splash);

Navigation.events().registerAppLaunchedListener(() => {
  Navigation.setRoot({
    root: {
     stack: {
         children: [
         {
             component: {
                 name: 'videostreme.MainScreen'
             }
         },

         ]
     }
    }
  })
})

Comment gérer cette promesse (Navigation.push), quelqu'un a-t-il une idée à ce sujet ?

2voto

Cela fonctionne quand j'ai donné componentId directement au lieu de this.props.componentId (ceci est indéfini lorsque je le console). Je donne donc directement componentId,

redirectPageHandler = screenName => {
  Navigation.push('login', {
   component: {
      name: screenName
   }
  });
}

La raison pour laquelle this.props.componentId est indéfini, nous devons passer les props du composant parent.

Mon composant enfant est Connexion et le composant parent est App

App.js

render() {
  return (
   <Login {...this.props} />
  )
}

Maintenant, nous pouvons utiliser this.props.componentId dans le composant enfant

Login.js

redirectPageHandler = screenName => {
  Navigation.push(this.props.componentId, {
   component: {
      name: screenName
   }
  });
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X