React-native-router-flux: La sélection de l'onglet d'écran actuel instancie un nouveau composant

Créé le 3 mars 2017  ·  9Commentaires  ·  Source: aksonov/react-native-router-flux

J'ai une liste dans un écran (dans mon cas, un onglet) et si je sélectionne à nouveau l'onglet (étant déjà sélectionné), un nouveau composant est instancié.

Par exemple, si je fais défiler la liste et que j'appuie sur le bouton de tabulation, le défilement ira vers le haut. Cela n'arrive que la première fois, donc si vous appuyez à nouveau sur le bouton de tabulation, rien ne se passera (et c'est le comportement attendu, je suppose).

La même chose se produit "parfois" (je ne sais pas exactement quand) lorsque vous vous déplacez dans des scènes et je ne pense pas que ce soit ce qui devrait se produire car vous perdrez l'état des composants précédents.

Versions que j'utilise :

  • réagir-natif-routeur-flux v3.38.0
  • réagir natif v0.42.0
  • Simulateur Android
bug

Commentaire le plus utile

Avec react-native-router-flux v3.37.0, cela fonctionne comme prévu (ne restituant pas l'écran), il semble donc qu'il s'agisse d'un bogue avec la v3.38.0 ou ses dépendances.

Tous les 9 commentaires

Avec react-native-router-flux v3.37.0, cela fonctionne comme prévu (ne restituant pas l'écran), il semble donc qu'il s'agisse d'un bogue avec la v3.38.0 ou ses dépendances.

Oui, face au même problème, retour à la version 3.37.0

Je rencontre le même problème même en 3.37

Je peux confirmer que ce problème disparaît dans 3.37.0 mais existe dans 3.38.0.

@sk15973
Assurez-vous de redémarrer le packager react-native après avoir installé un nouveau package.

Et assurez-vous également que vous utilisez componentDidMount/componentWillMount/componentWillReceiveProps en conséquence, et n'apportez pas de nombreuses modifications inutiles à l'état.

Même problème ici.

@sk15973 Dans votre package.json , assurez-vous que votre dépendance react-native-router-flux n'inclut pas le signe caret (^) :

"dependencies": {
    "react-native-router-flux": "3.37.0",   // Good
    "react-native-router-flux": "^3.37.0", // Bad
}

Avec le symbole caret, vous utiliserez réellement la v3.38.0 lorsque vous effectuerez un nouveau npm install . C'est parce que react-native-router-flux semble avoir cassé le serveur en introduisant un changement de comportement dans une version mineure.

Veuillez me pardonner @aksonov de vous avoir tagué, mais je pense que c'est un peu sérieux car le caret ^ est inséré par défaut lors de l'utilisation de npm install react-nativer-router-flux --save . Au fil du temps, les utilisateurs de cette bibliothèque pourraient se retrouver dans des problèmes cryptiques après avoir fait de nouveaux npm install . Mais je comprends tout à fait si vous n'avez pas le temps :)

Je rencontre le même problème en 3.38

@jonrh merci, je ne l'avais pas remarqué, et ça marche bien maintenant

@EmiPC @jonrh Ce bug est-il résolu dans 3.39.1 ???

@iiitmahesh Je ne sais malheureusement pas. La version 3.37.0 est la dernière que j'utiliserai de cette bibliothèque, migrant vers React Navigation.

Cette page vous a été utile?
0 / 5 - 0 notes