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.
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!