web-dev-qa-db-fra.com

Impossible d'attribuer en lecture seule la propriété 'accessoires' de # <Objet> dans React Native

Impossible d'attribuer en lecture seule la propriété 'accessoires' de #

J'ai vérifié # 1654 sans succès. Veuillez examiner la question plus en détail ici-

Screenshot of error

Fondamentalement, ce que je fais, c'est d'utiliser un navigateur pour passer de la page d'index à la page ApplistGridView. Je vois que la navigation est réussie (à partir des journaux) mais, avant même de voir l'écran, je fais face à ce problème.

Et chrome messages de débogage-

Chrome Debug messages

Le code est affiché sur Github Je n'ai pas trouvé de solution. Qu'est-ce que je fais mal?

13
bozzmob

Vous ne pouvez pas pousser vers les accessoires this.props.nav.Push({id: 'Applist', index: 2}); car les propriétés des composants sont en lecture seule, comme l'indique l'erreur. Les accessoires peuvent uniquement être dérivés d'un composant parent, mais ne peuvent pas être modifiés.

EDIT: Cet article est un excellent point de départ pour les personnes confuses dans cette affaire comme je l'étais il y a quelque temps :) https://reactjs.org/docs/thinking-in-react.html

11
Thomas

Si cela vous arrive non pas à cause de accessoires mais à cause de état, vous essayez peut-être de faire une tâche comme celle-ci:

this.state.nav = 'whatever';

N'oubliez pas que les affectations à state dans React devrait être comme:

this.setState({
  nav: 'whatever'
});
1
CPHPython