IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Fermer une carte puis la ré-ouvrir


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Fermer une carte puis la ré-ouvrir
    Bonjour,
    Je vais encore avoir besoin de conseils.

    Voilà, j'utilise React et Leaflet pour gérer une carte. Sur celle-ci, un bouton permet de la fermer.
    Voilà sur quoi je pars :
    Mon composant parent comprend ce ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
              {Info.show &&
                <Map
                  setInfo={setInfo}
                  Info={Info}
                />
                }
    où Info.show est un Hook qui vaut true ou false.
    Dans le composant de ma carte, je charge ma carte comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        useEffect(() => {
            const map_instance = display_map();        // clean up
            return () => {
                if (map_instance._loaded) {
                    map_instance.remove();
                }
            };
        });
        return (
            <div id="map_container" ref={map_container_ref} className='Map'></div>
        );
    Pour mon bouton, je modifie mon Info.show et le passe a "false".

    Mon soucis, est que la carte disparaît bien, mais quand je veut a nouveau la faire réapparaître, le container s'affiche vide, le chargement de la carte ne se fait pas.

    A noter que j'ai essayé de mettre un [props.Info.show] en dépendance de mon useEffect, mais sans effets (sans jeu de mots)

    Je butte sur quelque chose, mais quoi ...
    Vous n'auriez pas une idée ?

    Merci par avance !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Bonjour,
    Mon soucis, est que la carte disparaît bien, mais quand je veut a nouveau la faire réapparaître, le container s'affiche vide, le chargement de la carte ne se fait pas.
    Bizarre sauf si tu détruis la map lorsque tu passes ton conteneur en display:none !

    Tu peux essayer un map.invalidateSize() au ré-affichage du conteneur.

  3. #3
    Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse,

    C'étais une belle voie, mais ça ne change rien ma carte se ré-affiche toujours vide...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    J'en conclu que l'instance de la map est supprimée ce qui paraît plausible à la lecture de map_instance.remove() dans ton code !
    Dans ce cas tu devrais avoir des messages d'erreur dans la console, touche F12.

    Le masquage/affichage d'une map ce fait de façon très triviale, la plupart du temps.
    Un bouton :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onClick={showHideMap}>Show/Hide</button>
    et une simple fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const showHideMap = useCallback(() => {
      const conteneur = map.getContainer();
      const visible = conteneur.offsetHeight;
      conteneur.style.height = visible ? 0 : "400px"; // on peut également jouer avec une classe CSS
    }, [map])
    ... on ne supprime pas la map.

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/04/2018, 08h23
  2. Ouvrir une popup puis la fermer dans la page suivante
    Par coraziari_l dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2012, 14h48
  3. Fermer une popup avant d'en ouvrir une autre
    Par banju dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2008, 15h38
  4. [VB6]Lancer une form puis 30 sec après la fermer et ........
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/03/2006, 18h17
  5. Réponses: 6
    Dernier message: 09/02/2006, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo