Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk melaksanakan acara penutup dalam mod reaksi

Bagaimana untuk melaksanakan acara penutup dalam mod reaksi

藏色散人
藏色散人asal
2022-12-20 11:04:392592semak imbas

Kaedah mod tindak balas untuk melaksanakan acara penutup: 1. Pantau sasaran acara onclick pelayar; 2. Tentukan klik melalui pernyataan "jika (e.target != messageRef.current) {setMessageCode; (false);}" Peristiwa, jika ia bukan kotak modal, hanya laksanakan acara penutup.

Bagaimana untuk melaksanakan acara penutup dalam mod reaksi

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi react18, komputer Dell G3.

Bagaimana untuk melaksanakan acara penutup dalam mod tindak balas?

Tindak balas klik di tempat lain untuk menutup kotak Modal

Prinsip: Sangat mudah, ia adalah untuk mendengar sasaran acara onclick pelayar, menentukan acara klik dan melaksanakan penutupan acara jika ia bukan kotak modal.

Pemarahan sisi pelayan tidak boleh mendapatkan objek tetingkap dalam useEffect

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

```

Tandatangan fungsi useLayoutEffect adalah sama seperti useEffect, tetapi ia akan digunakan dalam semua Kesan dipanggil serentak selepas DOM berubah. Anda boleh menggunakan ini untuk membaca reka letak DOM dan mencetuskan pemaparan semula secara serentak. Sebelum penyemak imbas melakukan lukisan, pelan kemas kini di dalam useLayoutEffect akan dimuat semula secara serentak.

Pembelajaran yang disyorkan: "tutorial video bertindak balas"

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan acara penutup dalam mod reaksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn