4 votes

React Navigation: 'navigation.state.params' est toujours indéfini dans 'options de navigation statiques'

Le cœur de mon problème est que lorsque j'ai ceci dans mes navigationOptions:

static navigationOptions = ({ navigation }) => {
    console.log(navigation)
    console.log(navigation.state)
}

La première instruction 'console.log' retourne l'objet de navigation complet avec "navigation.state.params" contenant les paramètres que j'ai passés.

Cependant, le deuxième 'console.log' retourne l'objet 'navigation.state' mais pour une raison quelconque, les 'params' sont indéfinis.

Voici comment je définis les paramètres de navigation (à partir de redux):

function mapStateToProps(state, props) {
    let sum = 0
    for (let product in state.cart) {
        sum += state.cart[product]
    }
    return props.navigation.state = {params: {cartSum: sum}}
}

Et mon environnement de développement:

node 6.10.1
react-native 0.46.4
redux 3.7.1
react-redux 5.0.5
react-navigation 1.0.0-beta.11

5voto

ashutosh pandey Points 942

Utilisé de cette manière

static navigationOptions = ({ navigation }) => {
    const { params = {} } = navigation.state;
    console.log(params)**affichera le handlesave avec la valeur de l'objet hello**
};

this.props.navigation.setParams({ handleSave: "Heloo" });

Peut-être que cela peut vous aider, merci

-1voto

Xen_mar Points 750

Il est possible de contourner ce problème en implémentant une méthode dans la classe de composant.

getNavigationParams() {
        return this.props.navigation.state.params || {};
    }

Cela vous donnera accès aux paramètres. Mais cela ne fonctionne pas pour les objets imbriqués.

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