2016-03-10 29 views
11

我想停止點擊事件冒泡。因此我在代碼中添加了e.stopPropagation()。我總是在控制檯中出現錯誤,它說:Uncaught TypeError: e.stopPropagation is not a function如何在reactjs中調用stopPropagation?

什麼是正確的方法來設置停止傳播在reactjs?

 handleClick: function(index, e) { 
     e.stopPropagation(); 

     ... 

    }, 
+0

你可以發佈你的代碼嗎?你在哪裏調用'handleClick'?也許在你的第一個參數'Event'對象 - 嘗試調用'console.log(typeof index.stopPropagation)' –

回答

18

正確的方法是使用.stopPropagation

var Component = React.createClass({ 
    handleParentClick: function() { 
    console.log('handleParentClick'); 
    }, 

    handleChildClick: function(e) { 
    e.stopPropagation(); 

    console.log('handleChildClick'); 
    }, 

    render: function() { 
    return <div onClick={this.handleParentClick}> 
     <p onClick={this.handleChildClick}>Child</p> 
    </div>; 
    } 
}); 

Example

你的事件處理程序將傳遞SyntheticEvent的情況下,圍繞着瀏覽器的原生事件 跨瀏覽器包裝。它有 與瀏覽器本地事件相同的界面,包括 stopPropagation()和preventDefault(),除了在所有瀏覽器中以相同的方式運行 。 Event System

相關問題