1
votes

L'action POP avec charge utile n'a été gérée par aucun navigateur

Je n'ai aucune idée de la cause de ce bogue dans mon application native react. J'utilise la version 5 de la bibliothèque React Navigation.

entrez la description de l'image ici

Cela plante parfois l'application au hasard . La recherche Google ne m'a pas aidé à comprendre ce que c'est. C'est très sélectif, ce qui est une bonne (ou une mauvaise) chose.

Alors qu'est-ce que cela signifie et qu'est-ce qui pourrait en être la cause?


5 commentaires

Cela peut arriver si vous essayez de faire apparaître s'il n'y a pas d'écrans vers lesquels revenir (par exemple, cliquez plusieurs fois sur le bouton de retour de l'en-tête). C'est un journal d'erreurs de développement uniquement. Pas un crash. Vous pouvez l'ignorer et continuer à utiliser l'application. L'erreur ne sera pas affichée en production.


Dans mon cas, l'erreur se produisait alors que davantage de données étaient extraites d'une API. C'était sur l'écran initial donc il n'y avait pas de bouton de retour d'en-tête. Bien que je fasse défiler vers le bas à quelques reprises.


Votre explication a du sens mais l'exemple ne s'applique pas à moi. Pouvez-vous penser à d'autres exemples?


Difficile à dire sans regarder votre code


Cela pourrait être un bug: github.com/react-navigation/react-navigation/issues/6820


4 Réponses :


0
votes

Avez-vous essayé cela?

this.props.navigation.goBack()


1 commentaires

Cela se produit sur l'écran initial, donc je n'exécute pas ce code.



0
votes

Puisqu'il s'agit d'un avertissement de niveau d'erreur de développement, déclenché par navigation.pop , vous pouvez le désactiver temporairement:

const temp = console.error;
console.error = () => {};
navigation.pop();
console.error = temp;


0 commentaires

1
votes
if(navigation.canGoBack()) {
  navigation.dispatch(StackActions.pop(1));
}
see  https://github.com/react-navigation/react-navigation/issues/7814#issuecomment-599921016

0 commentaires

0
votes

vous devez vérifier qu'il peut revenir en arrière ou non par la méthode canGoBack comme celle-ci

import {  StackActions } from '@react-navigation/native';

if(this.refs.navigation.canGoBack())
{
  this.refs.navigation.dispatch(StackActions.pop(1));
// this.refs.navigation.dispatch(StackActions.popToTop());
}


0 commentaires