1 00:00:02,160 --> 00:00:09,210 Je veux donc aller à l'écran de la carte et je veux vraiment y ajouter un marqueur dès le début, ce qui est également quelque chose 2 00:00:09,210 --> 00:00:11,050 qu'il ne prend pas en charge 3 00:00:11,100 --> 00:00:13,910 actuellement et je veux m'assurer que je ne peux pas choisir 4 00:00:13,990 --> 00:00:15,990 un nouvel emplacement là-bas, donc quelques restrictions. 5 00:00:15,990 --> 00:00:21,960 Donc, lorsque nous cliquons sur l'aperçu de la carte, onPress, je veux naviguer vers les différents écrans à droite. 6 00:00:22,020 --> 00:00:28,330 Je vais donc ajouter une nouvelle constante ici pour contenir une fonction que je nommerai afficher le gestionnaire de carte, bien sûr, vous auriez également 7 00:00:28,590 --> 00:00:33,300 pu utiliser une fonction en ligne et je connecterai le gestionnaire de carte à mon accessoire de presse 8 00:00:33,300 --> 00:00:35,340 ici sur l'aperçu de la carte . 9 00:00:35,370 --> 00:00:38,970 Cela se déclenchera lorsque nous cliquons sur l'aperçu, lorsque nous le tapotons et 10 00:00:39,130 --> 00:00:47,430 ici, bien sûr, je veux naviguer. Bien sûr, cela peut être fait avec des accessoires. la navigation. naviguez puis accédez à l'écran 11 00:00:47,430 --> 00:00:49,200 de la carte. 12 00:00:49,200 --> 00:00:51,520 Le problème est que si nous le 13 00:00:51,520 --> 00:00:58,830 faisons comme ça, sans surprise si nous y jetons un œil sur Android une fois rechargé, si je clique dessus, je charge l'écran 14 00:00:58,830 --> 00:01:05,790 de la carte mais je n'ai pas l'endroit que j'ai sélectionné présélectionné et je peux cliquez également ici et enregistrez et revenez 15 00:01:05,790 --> 00:01:10,120 à mon écran d'ajout de lieu et ce n'est certainement pas comment cela devrait 16 00:01:11,240 --> 00:01:12,860 fonctionner, donc c'est faux. 17 00:01:12,890 --> 00:01:19,640 Au lieu de cela, je veux passer quelques données à l'écran de la carte où je peux pour un, définir ceci 18 00:01:19,880 --> 00:01:23,140 en lecture seule, disons, donc je vais passer un accessoire 19 00:01:23,450 --> 00:01:32,870 en lecture seule et définir cela sur true et je veux également définir un emplacement initial et définir ceci à un objet par exemple, où je passe essentiellement à 20 00:01:32,870 --> 00:01:35,990 cet endroit que je montre également sur l'aperçu. 21 00:01:35,990 --> 00:01:46,870 Donc ici, je peux le couper à partir de là et créer une nouvelle constante d'assistance ici, l'emplacement sélectionné est maintenant juste ici et je le passe comme 22 00:01:46,870 --> 00:01:54,310 emplacement initial ici, l'emplacement sélectionné et je le passe à mon aperçu de la carte sur le prop de 23 00:01:54,310 --> 00:01:57,440 l'emplacement et avec cela, nous transmettons les données 24 00:01:57,510 --> 00:02:01,160 à l'écran de la carte, nous devons maintenant les 25 00:02:01,170 --> 00:02:02,430 utiliser là-bas. 26 00:02:02,430 --> 00:02:08,940 Nous devons donc utiliser l'accessoire ou le paramètre en lecture seule pour nous assurer que nous ne pouvons pas sélectionner un nouvel endroit, un emplacement 27 00:02:08,940 --> 00:02:11,670 initial pour y avoir toujours un marqueur dès le début. 28 00:02:12,620 --> 00:02:19,990 Alors maintenant, pour utiliser toutes ces informations ici dans l'écran de la carte, je peux obtenir mes données des paramètres que je 29 00:02:20,000 --> 00:02:30,380 reçois, donc j'obtiens mon emplacement initial en accédant aux accessoires. la navigation. emplacement initial de getParam qui pourrait être défini, 30 00:02:30,380 --> 00:02:37,940 bien sûr, cela pourrait également être indéfini, mais il pourrait également être défini et j'obtiens la lecture uniquement avec la 31 00:02:37,970 --> 00:02:42,980 navigation des accessoires, obtenez la lecture des paramètres uniquement qui peut également être indéfinie. 32 00:02:43,150 --> 00:02:45,860 Maintenant, l'emplacement initial peut 33 00:02:45,860 --> 00:02:51,680 être utilisé pour initialiser l'état maintenant. Maintenant, cela ne réinitialisera pas cela chaque fois que cela se restitue, mais à la 34 00:02:51,680 --> 00:02:56,450 place, React gère cela de telle sorte que cela définit l'état initial et pour les cycles de restitution ultérieurs, cela est simplement ignoré, pourrait-on dire. 35 00:02:57,650 --> 00:03:03,530 Alors maintenant, quand nous avons un emplacement initial, notre état sera initialisé à cet emplacement qui est génial. 36 00:03:03,590 --> 00:03:09,290 Maintenant, gardez à l'esprit que ce que j'ai passé à l'emplacement initial est de type objet avec lat et lng et 37 00:03:09,290 --> 00:03:13,510 que, bien sûr, cela devrait correspondre à ce que nous gérons avec notre état ici 38 00:03:13,510 --> 00:03:18,950 et c'est le cas parce que là j'ai également défini mon état sur un objet avec lat et lng, si 39 00:03:18,950 --> 00:03:25,490 ce serait différent, vous auriez besoin d'une logique pour normaliser cela. Maintenant, la lecture seule est l'autre chose que j'extrais et je peux l'utiliser dans 40 00:03:25,490 --> 00:03:31,220 un gestionnaire d'emplacement sélectionné qui est la fonction qui se déclenche chaque fois que nous appuyons sur la carte et là, nous pouvons vérifier 41 00:03:31,340 --> 00:03:37,940 si la lecture seule est vraie et si elle n'est pas définie, elle le sera être faux mais si c'est vrai, je reviens juste ici ce qui signifie 42 00:03:37,940 --> 00:03:44,090 que je ne continue pas, je ne choisis pas un nouvel emplacement. Avec cela, la sélection d'un emplacement doit être désactivée. 43 00:03:44,090 --> 00:03:47,900 Maintenant, je veux aussi me débarrasser du bouton Enregistrer si nous n'avons rien à enregistrer, donc 44 00:03:47,900 --> 00:03:53,630 si nous sommes en mode lecture seule, nous ne pouvons rien enregistrer. Donc, headerRight ne devrait être défini que si nous ne 45 00:03:53,780 --> 00:03:58,790 sommes pas en mode lecture seule, donc ici, je vais également extraire le mode lecture seule à l'aide 46 00:03:58,790 --> 00:04:02,200 de la navigation, obtenir la lecture en paramètre uniquement, ce que je 47 00:04:02,600 --> 00:04:09,230 peux faire ici aussi bien sûr et donc maintenant ici, si nous sommes en mode lecture seule, si c'est vrai, alors la configuration que 48 00:04:09,230 --> 00:04:10,550 je renvoie est un 49 00:04:10,550 --> 00:04:14,240 objet vide, donc sans aucun bouton. Essayons ceci. 50 00:04:14,300 --> 00:04:22,550 Enregistrons-le et revenons en arrière et si je clique maintenant sur cet élément ici et que je clique sur la carte, il s'ouvre mais je n'ai pas de bouton de sauvegarde et pas 51 00:04:22,550 --> 00:04:28,430 de marqueur donc ça ne marche pas mais au moins je ne peux pas en sélectionner un nouveau un, c'est bien mais le 52 00:04:28,430 --> 00:04:32,030 marqueur ne fonctionne pas non plus. Maintenant, avant de résoudre ce 53 00:04:32,030 --> 00:04:37,540 problème, allons au nouvel écran de lieu et voyons si nous pouvons encore y définir un marqueur et c'est 54 00:04:37,550 --> 00:04:40,700 le cas, nous pouvons choisir un endroit là-bas, donc ça marche. 55 00:04:40,700 --> 00:04:48,640 Donc, la seule chose qui ne fonctionne pas vraiment est de charger cette carte avec un marqueur choisi et en fait, ce n'est pas correct, nous avons un 56 00:04:48,640 --> 00:04:49,360 marqueur, ce 57 00:04:49,360 --> 00:04:57,600 n'est tout simplement pas ici sur l'écran que nous avons présélectionné à San Francisco. Si nous allons au 58 00:04:57,600 --> 00:05:02,750 plex Google là-bas, voici le 59 00:05:02,760 --> 00:05:06,160 marqueur. Donc, il a enregistré cela, il ne s'est 60 00:05:06,180 --> 00:05:08,880 tout simplement pas concentré sur cela lorsque nous l'avons chargé, c'est donc un petit 61 00:05:09,300 --> 00:05:13,970 ajustement que nous devrions également ajouter sur l'écran de la carte. Là, nous devons nous assurer 62 00:05:14,190 --> 00:05:22,240 que cette région de carte que nous définissons ici prend également en compte l'emplacement initial si nous 63 00:05:22,240 --> 00:05:26,590 en avons un. Voici donc la latitude que nous avons définie initialement, 64 00:05:26,620 --> 00:05:32,770 eh bien, si nous avons un emplacement initial, je veux utiliser l'emplacement initial. lat au lieu de la valeur par défaut, utilisez 65 00:05:32,920 --> 00:05:36,550 uniquement la valeur par défaut sinon, même bien sûr pour la longitude. 66 00:05:36,550 --> 00:05:42,010 Si nous avons un emplacement initial, je veux utiliser la longitude de celui-ci au lieu de la valeur par défaut. 67 00:05:44,060 --> 00:05:50,390 Maintenant, avec cela, si nous l'enregistrons, nous devrions pouvoir avoir une carte qui est automatiquement centrée sur notre marqueur si 68 00:05:50,390 --> 00:05:54,050 nous l'ouvrons en mode lecture seule, alors ici, en effet, cela fonctionne 69 00:05:54,470 --> 00:05:55,960 et si j'ajoute bien 70 00:05:56,180 --> 00:06:01,840 sûr un nouvel endroit, que fonctionne également toujours. Là, nous l'ouvrons sur l'emplacement par 71 00:06:01,850 --> 00:06:08,840 défaut, donc quelque part ici à San Francisco. Tout cela fonctionne donc et maintenant je veux juste 72 00:06:08,870 --> 00:06:13,190 le tester sur de vrais appareils avant de terminer ce module et nous 73 00:06:13,340 --> 00:06:17,240 avons fini d'ajouter des fonctionnalités d'appareil natif à notre application React Native.