2017-10-18 27 views
0

Salut, je suis nouveau pour réagir natif et en essayant d'apprendre quelques petites choses. J'essaye de passer un nom d'utilisateur sur un clic de bouton à la vue d'enfant. Voici mon code sur le bouton cliquez sur la vue Aréagissent natif passant paramètres à l'autre composant

this.props.navigation.navigate('GetRegisteredScreen', {}, { 
    type: ' Navigate', 
    routeName: 'GetRegisteredScreen', 
    params: {username: 'Robert'} 
}) 

Voir B

componentDidMount(){ 
    alert(this.props.navigation.state.params.username) 
} 

Obtenir ci-dessous erreur

non définie dans le params.username

Qu'est-ce que je suis mal faire?

peut aider quelqu'un s'il vous plaît, Merci à l'avance

EDIT: Voici ce que je le reçois pour this.props.navigation

enter image description here

+0

Qu'est-ce que vous obtenez si vous faites un 'console.log (this.props.navigation)'? –

+0

J'ai testé votre code et cela fonctionne très bien. Mais j'ai changé «Navigate» au lieu de «Navigate». Sans l'espace. –

+0

Je reçois toujours 'indéfini' quand j'essaie d'imprimer console.log (this.props.navigation.state.params.username). – dogwasstar

Répondre

0

Je devine que votre navigateur injecte les propriétés de params dans la les accessoires du composant suivant, il suffit donc d'utiliser

this.props.username 
+0

J'ai vérifié mais ça ne fonctionne toujours pas. pouvez-vous me montrer un exemple de code? – dogwasstar

0

Vous avez une erreur de syntaxe. Vous passez le mauvais. Ça devrait être comme ci-dessous. La syntaxe utilisée est dispatching navigate action.

Exemple

const navigateAction = NavigationActions.navigate({ 
    routeName: 'Profile', 
    params: {}, 
    action: NavigationActions.navigate({ routeName: 'SubProfileRoute'}) 
}) 

this.props.navigation.dispatch(navigateAction)