react 阻止事件傳遞/冒泡


當我們設計界面時,在以下情況會需要阻止元素/組件內的事件阻斷,不被上層觸發:

  1. 彈出提示框,期望點擊框外空白區域可以關閉彈框、點擊框內不關閉彈框
  2. 組件設計時,期望點擊全局/點擊指定元素時,顯示不一樣的交互。

網上搜到三種答案:

ev.preventDefault() ev.stopPropagation(); ev.nativeEvent.stopImmediatePropagation();

推薦第三個:

 1     componentDidMount() {
 2         document.onclick = e => this.onClickDocument();
 3     }
 4     onClickDocument(){
 5         alert('onClickDocument');
 6     }
 7     onClickElement(e){
 8         e.nativeEvent.stopImmediatePropagation();
 9         alert('onClickElement');
10     }

 

參考:

https://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events

https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopImmediatePropagation 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM