0
votes

Réagir la méthode de cycle de vie natif pour exécuter le code de navigation (accédez à un autre écran) après la fin du cycle de Redux

J'utilise ReDux et réagissez de navigation dans mon application où je fais des appels d'API, J'ai une question qui, après avoir réussi mon cycle REDUX, quelle méthode de cycle de vie de réagisme de réagissage que je devrais avoir à utiliser pour la navigation vers l'écran suivant et pourquoi?

  • L'utilisateur a cliqué sur la connexion après avoir mis ses informations d'identification sur l'écran de connexion.
  • a exécuté l'action Login Redux et renvoyé un succès
  • Après succès, mes accessoires d'écran de connexion sont modifiés et je souhaite rediriger vers l'écran suivant.
  • dans quelle méthode je devrais avoir à mettre le code de navigation comme

    ceci.props.navigation.navigation.navigate ("Dashoardscreen ');

    Quand j'ai parcouru les différentes recherches et j'ai trouvé que composantDidUpdate () ou devrait () sera la bonne méthode pour exécuter ce truc. Quelle méthode devrait en réalité être considérée et pourquoi?


0 commentaires

3 Réponses :


0
votes

Vous voulez probablement utiliser composantDidUpdate , car c'est la dernière chose à laquelle on s'appelle quand une mise à jour est arrivée.

D'autre part, DépomponponUpdate est utilisé pour optimiser la fréquence de rendez-vous de votre composant, par exemple. Comment avez-vous réacteur aux apports d'accessoires / état en retournant true si la mise à jour doit déclencher un titre de recherche ou faux sinon.


0 commentaires

0
votes

Il ne faut normalement pas être appelé dans une méthode de cycle de vie, mais doit être à l'intérieur de votre loginhandler (gestionnaire pour cliquer sur le bouton de connexion), juste après le succès de l'action de connexion ASYNC.


2 commentaires

Si tel est le cas, alors comment je ferai des mises à jour de l'UI sur la connexion, telles que la fermeture du chargeur d'interface utilisateur?


Vous pouvez mettre à jour l'état (ce contrôle si un chargeur d'interface utilisateur doit afficher ou fermer) juste après le succès de succès et avant de naviguer vers un autre écran. Si cela peut causer une mise à jour de l'état sur un avertissement de composant non monté (généralement probablement sur Android parfois), vous pouvez vous installer quelques secondes de mili pour naviguer vers un autre écran



0
votes

Vous n'avez pas besoin (et idéalement pas) Placez votre logique de navigation dans le composant de connexion. Et s'il y a plusieurs écrans de connexion? Vous ne voulez pas copier ce code de navigation partout. Et si vous voulez mettre des écrans intermédiaires après la connexion, mais avant de naviguer vers l'application? Et si vous voulez, sous certaines conditions, intercepter la connexion, par exemple Pour exécuter des chèques d'asynchronisation avant de naviguer? Si vous continuez à ajouter cette logique à l'intérieur des composants, il deviendra rapidement un désordre

Vous voulez appeler Navigate dans votre Thunk ou SAGA (ou tout autre gestionnaire que vous avez) après que vous ayez terminé en vous connectant. Habituellement, vous n'accédez en effet que Navigation à partir de ceci.props uniquement disponible en composant mais ce n'est pas le seul moyen d'accéder à la navigation. Pour pouvoir naviguer à l'extérieur de la composante, utilisez Navigation sans la navigation PROP < / a>


3 commentaires

Si j'ai plusieurs écrans de connexion, je mettrai ce code dans une fonction d'assistance et peut appeler cette fonction identique à celle de l'action. De plus, l'utilisation de la navigation sera une partie délicate pour que je gère la pile de navigation lorsque l'application augmente.


La fonction d'assistant comme celle-ci a plus d'inconvénients que peut sembler. Et si vous avez besoin de certaines parties de l'état de Redux pour exécuter cette logique? Voulez-vous simplement connecter tous ces composants avec ces parties de l'état Redux, même si ces pièces n'appartiennent pas directement à des composants? Puis mettre à jour cette connexion dans chaque composant chaque fois que quelque chose change? Et si vos composants sont démontés avant que cette fonction ait fini de fonctionner? Je n'ai pas encore compris la dernière partie, la navigation de NavigationService est à peine différente de la navigation des accessoires


Il peut s'agir d'une fonction pure où vous pouvez transmettre toutes les données du composant et naviguer, également si nous appelons cette fonction de particulier au composant, nous pouvons passer l'état mappé avec ce composant à cette fonction. Donc, seul le composant appelant de la fonction sera en mémoire et seul ce composant sera mis à jour.