Maison > interface Web > Questions et réponses frontales > Comment implémenter un événement de clôture dans le modal React

Comment implémenter un événement de clôture dans le modal React

藏色散人
Libérer: 2022-12-20 11:04:39
original
2568 Les gens l'ont consulté

Comment implémenter les événements de fermeture dans le mode de réaction : 1. Écoutez la cible de l'événement onclick du navigateur ; 2. Jugez l'événement de clic via le "if (e.target != messageRef.current) {setMessageCode(false);} ", sinon exécutez simplement l'événement de fermeture de la boîte modale.

Comment implémenter un événement de clôture dans le modal React

L'environnement d'exploitation de ce tutoriel : système Windows 10, version React18, ordinateur Dell G3.

Comment implémenter un événement de clôture dans le modal React ?

Réagissez aux clics ailleurs pour fermer la boîte modale

Principe : Très simple, il s'agit d'écouter la cible de l'événement onclick du navigateur, de déterminer l'événement clic, et d'exécuter l'événement de fermeture s'il ne s'agit pas d'une boîte modale.

Le rendu côté serveur ne peut pas obtenir l'objet window dans useEffect

useLayoutEffect(() => {
    window.addEventListener("click", (e) => {
      if (e.target != messageRef.current) {
        setMessageCode(false);
      }
    });
  }, []);```
Copier après la connexion
const messageRef = useRef(null);
Copier après la connexion

```

La signature de fonction de useLayoutEffect est la même que celle de useEffect, mais elle appellera l'effet de manière synchrone après toutes les modifications du DOM. Vous pouvez l'utiliser pour lire la disposition du DOM et déclencher un nouveau rendu de manière synchrone. Avant que le navigateur n'effectue le dessin, le plan de mise à jour dans useLayoutEffect sera actualisé de manière synchrone.

Apprentissage recommandé : "Tutoriel vidéo React"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal