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
qu'il ne prend pas en charge
actuellement et je veux m'assurer que je ne peux pas choisir
un nouvel emplacement là-bas, donc quelques restrictions.
Donc, lorsque nous cliquons sur l'aperçu de la carte, onPress, je veux naviguer vers les différents écrans à droite.
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
pu utiliser une fonction en ligne et je connecterai le gestionnaire de carte à mon accessoire de presse
ici sur l'aperçu de la carte .
Cela se déclenchera lorsque nous cliquons sur l'aperçu, lorsque nous le tapotons et
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
de la carte.
Le problème est que si nous le
faisons comme ça, sans surprise si nous y jetons un œil sur Android une fois rechargé, si je clique dessus, je charge l'écran
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
à mon écran d'ajout de lieu et ce n'est certainement pas comment cela devrait
fonctionner, donc c'est faux.
Au lieu de cela, je veux passer quelques données à l'écran de la carte où je peux pour un, définir ceci
en lecture seule, disons, donc je vais passer un accessoire
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 à
cet endroit que je montre également sur l'aperçu.
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
emplacement initial ici, l'emplacement sélectionné et je le passe à mon aperçu de la carte sur le prop de
l'emplacement et avec cela, nous transmettons les données
à l'écran de la carte, nous devons maintenant les
utiliser là-bas.
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
initial pour y avoir toujours un marqueur dès le début.
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
reçois, donc j'obtiens mon emplacement initial en accédant aux accessoires. la navigation. emplacement initial de getParam qui pourrait être défini,
bien sûr, cela pourrait également être indéfini, mais il pourrait également être défini et j'obtiens la lecture uniquement avec la
navigation des accessoires, obtenez la lecture des paramètres uniquement qui peut également être indéfinie.
Maintenant, l'emplacement initial peut
être utilisé pour initialiser l'état maintenant. Maintenant, cela ne réinitialisera pas cela chaque fois que cela se restitue, mais à la
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.
Alors maintenant, quand nous avons un emplacement initial, notre état sera initialisé à cet emplacement qui est génial.
Maintenant, gardez à l'esprit que ce que j'ai passé à l'emplacement initial est de type objet avec lat et lng et
que, bien sûr, cela devrait correspondre à ce que nous gérons avec notre état ici
et c'est le cas parce que là j'ai également défini mon état sur un objet avec lat et lng, si
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
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
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
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.
Maintenant, je veux aussi me débarrasser du bouton Enregistrer si nous n'avons rien à enregistrer, donc
si nous sommes en mode lecture seule, nous ne pouvons rien enregistrer. Donc, headerRight ne devrait être défini que si nous ne
sommes pas en mode lecture seule, donc ici, je vais également extraire le mode lecture seule à l'aide
de la navigation, obtenir la lecture en paramètre uniquement, ce que je
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
je renvoie est un
objet vide, donc sans aucun bouton. Essayons ceci.
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
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
marqueur ne fonctionne pas non plus. Maintenant, avant de résoudre ce
problème, allons au nouvel écran de lieu et voyons si nous pouvons encore y définir un marqueur et c'est
le cas, nous pouvons choisir un endroit là-bas, donc ça marche.
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
marqueur, ce
n'est tout simplement pas ici sur l'écran que nous avons présélectionné à San Francisco. Si nous allons au
plex Google là-bas, voici le
marqueur. Donc, il a enregistré cela, il ne s'est
tout simplement pas concentré sur cela lorsque nous l'avons chargé, c'est donc un petit
ajustement que nous devrions également ajouter sur l'écran de la carte. Là, nous devons nous assurer
que cette région de carte que nous définissons ici prend également en compte l'emplacement initial si nous
en avons un. Voici donc la latitude que nous avons définie initialement,
eh bien, si nous avons un emplacement initial, je veux utiliser l'emplacement initial. lat au lieu de la valeur par défaut, utilisez
uniquement la valeur par défaut sinon, même bien sûr pour la longitude.
Si nous avons un emplacement initial, je veux utiliser la longitude de celui-ci au lieu de la valeur par défaut.
Maintenant, avec cela, si nous l'enregistrons, nous devrions pouvoir avoir une carte qui est automatiquement centrée sur notre marqueur si
nous l'ouvrons en mode lecture seule, alors ici, en effet, cela fonctionne
et si j'ajoute bien
sûr un nouvel endroit, que fonctionne également toujours. Là, nous l'ouvrons sur l'emplacement par
défaut, donc quelque part ici à San Francisco. Tout cela fonctionne donc et maintenant je veux juste
le tester sur de vrais appareils avant de terminer ce module et nous
avons fini d'ajouter des fonctionnalités d'appareil natif à notre application React Native.