今天小編給大家分享一下react modal如何實(shí)現(xiàn)關(guān)閉事件的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創(chuàng)新互聯(lián)長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為東烏珠穆沁企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,東烏珠穆沁網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
react modal實(shí)現(xiàn)關(guān)閉事件的方法:1、監(jiān)聽瀏覽器onclick事件的target;2、通過“if (e.target != messageRef.current) {setMessageCode(false);}”語句判斷點(diǎn)擊事件,如果不是modal框就執(zhí)行關(guān)閉事件即可。
react點(diǎn)擊其他地方關(guān)閉Modal框
原理:很簡單,就是監(jiān)聽瀏覽器onclick事件的target,判斷點(diǎn)擊事件,如果不是modal框就執(zhí)行關(guān)閉事件。
服務(wù)端渲染在useEffect拿不到window對(duì)象
useLayoutEffect(() => {
window.addEventListener("click", (e) => {
if (e.target != messageRef.current) {
setMessageCode(false);
}
});
}, []);```
const messageRef = useRef(null);
useLayoutEffect的函數(shù)簽名與useEffect相同,但是它會(huì)在所有的DOM變更之后同步調(diào)用effect??梢允褂盟鼇碜x取DOM布局并同步觸發(fā)重新渲染。在瀏覽器執(zhí)行繪制之前,useLayoutEffect內(nèi)部的更新計(jì)劃將被同步刷新。
以上就是“react modal如何實(shí)現(xiàn)關(guān)閉事件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。