2016-03-10 9 views
11

クリックイベントが呼び出されないようにしたい。したがって私はコードにe.stopPropagation()を追加しました。私はいつもコンソールに間違いがあります:Uncaught TypeError: e.stopPropagation is not a functionreactjsでstopPropagationを呼び出す方法は?

reactjsでstopPropagationを設定する正しい方法は何ですか?

 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

関連する問題