当前位置:网站首页>[flutter problem Series Chapter 67] the Solution to the problem of Routing cannot be jumped again in in dialog popup Using get plug - in in flutter
[flutter problem Series Chapter 67] the Solution to the problem of Routing cannot be jumped again in in dialog popup Using get plug - in in flutter
2022-06-13 04:25:00 【Allen SU】
C'est【Flutter Série de questions 67 Articles】,Si ça marche.,Bienvenue dans la rubrique.
Pour les blogs Flutter SDK:2.2.3,Dart SDK:2.13.4,get: 4.3.8.
Catalogue des articles
Un.:Description du problème
Un problème que j'ai découvert par hasard,Il est noté que:.
Quand je suis monté sur les étagères du magasin de millet,Fenêtre contextuelle avec Protocole de confidentialité lorsque l'utilisateur entre dans l'application pour la première fois,Et puis on a ajouté,Cliquez sur《Protocole utilisateur》Peut également sauter normalement à la Web (En milliers de dollars des États - Unis),Je pensais que c'était fini,Comme le montre la figure ci - dessous

Par hasard, quand je teste , Quand j'ai eu mon premier pop - up , Le premier clic sur le lien permet un saut normal ,Sortie Web .Page cliquée à nouveau sans réponse ,Pourquoi??
Point d'arrêt débogué , J'ai trouvé la racine du problème .
2.:Solutions
Paramètres Get.toNamed() Propriétés de la méthode preventDuplicates Pour false C'est tout.,Le code ci - dessous
/// Passer à《Protocole utilisateur》Page Web
void _toAgreementPage() {
Get.toNamed(
AppRoutes.WEB,
arguments: WebModel(title: "《Protocole utilisateur》", url: agreementUrl, isLocal: false),
preventDuplicates: false, // “Prévention des doubles emplois”Set to false
);
}
Et le problème est résolu. , Ce n'est pas seulement pour Dialog,C'est parfait. Snackbar、BottomSheet Attends..
Trois:Analyse des sources《Comment résoudre Dialog Problème de routage de rebond secondaire anormal》
Certains camarades de classe aiment casser la casserole à sable et demander à la fin , Le problème est résolu ,Mais pourquoi?? Alors nous allons commencer l'analyse du code source .
D'abord, à travers le débogage du point d'arrêt Get.toNamed() Source de la méthode,Comme le montre la figure ci - dessous
Comme le montre la figure,toNamed() La note au - dessus de la méthode signifie
- Par défaut,GetX Empêche le saut vers une route déjà entrée .
- Si vous voulez lever cette restriction ,Définir les propriétés preventDuplicates Pour false C'est tout..
La position du point d'arrêt indique ,En ce moment preventDuplicates Pour true, Pour revenir à ce jugement ,Description page == currentRoute Les conditions sont également réunies, C'est - à - dire que ce qui saute actuellement, c'est la route déjà entrée .
Méthode retournée null ,Donc, dans Dialog Cliquez à nouveau sur le lien pour sauter Web Il n'y a pas eu de réaction à la page .
Tout ce qu'il nous faut, c'est mettre en place preventDuplicates Pour false, La condition n'est plus valable , La nature est entrée dans le jugement .
Quatre:Analyse des sources《Pourquoi n'y a - t - il pas cette question dans la page Dialog Mais il y avait》
Un.: Quand la route entre dans la pile
Commençons par une classe GetObserver
,Cette classe hérite de NavigatorObserver
Catégorie, Le but est d'écouter les sauts de page . Comme d'habitude Toast Et plus tard héritera de cette classe , GetObserver
Le code source de la classe est montré dans la figure suivante
Quand je clique《Protocole utilisateur》 Lien vers Web Page, La section sélectionnée dans la case Rouge indique ,Seulement PageRoute Le type permet de modifier la route actuelle current Valeur du champ, Donc, la mise à jour est maintenant .
Et c'est pourquoi Dialog Il n'y a pas de problème avec le pop - up entrant dans la nouvelle page .
2.: Quand le routage sort de la pile
Comme le montre la figure ci - dessous
Quand je clique Web Lorsque le bouton retour de la page quitte la page courante , La section sélectionnée dans la case Rouge indique ,Seulement PageRoute Le type permet de modifier la route actuelle current Valeur du champ, Et nous venons de Dialog Le pop - up est entré , Le type de page précédente est GetDialogRoute, Mise à jour non satisfaite current Conditions.
Donc, bien que nous ayons vraiment abandonné Web (En milliers de dollars des États - Unis),Mais en ce moment, current La valeur de n'a pas été mise à jour ,Toujours /web
, C'est - à - dire que ce que les yeux voient est une fenêtre , Mais le programme pense que vous êtes Web (En milliers de dollars des États - Unis), Cela crée un problème que la même page ne peut pas sauter .
Jusqu'ici.,À propos de Flutter Utilisé dans Get Le plug - in est Dialog Le problème de ne pas pouvoir sauter deux fois dans la fenêtre contextuelle , Je l'ai présenté ici .
Pour finir get Classe qui juge du type de routage actuel ,Comme le montre la figure ci - dessous
Comme le montre la figure
- Dialog Le type est GetDialogRoute,De PopupRoute.
- Snackbar Le type est SnackRoute,De OverlayRoute.
- BottomSheet Le type est GetModalBottomSheetRoute,De PopupRoute.
- Page Le type estGetPageRoute,De PageRoute.
Votre problème a - t - il été résolu??Bienvenue dans la section commentaires.
Rose donatrice,Il y a du parfum dans les mains.,Si vous trouvez l'article bon,J'espère qu'il y a un lien.,Merci beaucoup..
Google De Flutter De plus en plus de feu,Fin 2022Année6Mois10Jour GitHub L'étoile a atteint 142K,Flutter La détermination est une tendance,Donc en tant que développeur frontal,Il n'y a aucune raison de ne pas étudier avant.
Conclusion
Que vous soyez Flutter Le novice est encore en train de commencer,Peut - être qu'un peu d'attention,Ensuite, je vais Flutter Composants communs dans(Contient l'analyse du code source、Utilisation et précautions des composants)Et les problèmes que vous pourriez rencontrer CSDN Sur le blog,J'espère que tout en étudiant,Peut également aider plus de gens.
边栏推荐
- Get verification code
- Redis
- 建模杂谈系列143 数据处理、分析与决策系统开发的梳理
- This Sedata uses multiple methods to dynamically modify objects and values in arrays. Object calculation properties
- 高等数学(第七版)同济大学 习题1-2 个人解答
- dumi 搭建文檔型博客
- Introduction and use of ES6
- Discussion sur la modélisation de la série 143
- Ultra quicksort reverse sequence pair
- Manage PC startup items
猜你喜欢
Intervention analysis + pseudo regression
Dumi construit un blog documentaire
CTFSHOW SQL注入篇(231-253)
R: Airline customer value analysis practice
[kubernetes series] pod chapter actual operation
Principle, composition and functions of sensors of Dajiang UAV flight control system
Simple static web page + animation (small case)
dumi 搭建文檔型博客
Dumi builds a document blog
Uni app Ali font icon does not display
随机推荐
Differences and relations between three-tier architecture and MVC
Principle, composition and functions of sensors of Dajiang UAV flight control system
Milliards de données pour déterminer si un élément existe
个人总结的MVP框架
Principle and control program of single chip microcomputer serial port communication
120. triangle minimum path sum - Dynamic Planning
Common ways to traverse map sets
Simple static web page + animation (small case)
十亿数据量 判断元素是否存在
Manage PC startup items
[sword finger offer] interview question 25 Merge two ordered linked lists
Interpretation of mobile phone private charging protocol
Online audio adjustment technology summary
Dumi construit un blog documentaire
Redis hyperloglog cardinality statistics algorithm
2019 Blue Bridge Cup
February 25, 2021 (Archaeology 12 year Landbridge provincial competition)
This Sedata uses multiple methods to dynamically modify objects and values in arrays. Object calculation properties
MySQL index
Redis data persistence