2016-03-10 13 views
11

Voglio interrompere l'evento click da pasticciare. Pertanto ho aggiunto e.stopPropagation() nel mio codice. Ho sempre un errore nella console, che dice: Uncaught TypeError: e.stopPropagation is not a functionCome chiamare stopPropagation in reactjs?

Qual è il modo giusto per impostare stopPropagation in reactjs?

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

     ... 

    }, 
+0

potresti pubblicare il tuo codice? dove chiami 'handleClick'? Forse nel primo argomento 'Event' object - prova a chiamare' console.log (typeof index.stopPropagation) ' –

risposta

18

Il modo giusto è quello di utilizzare .stopPropagation,

casi verrà passato
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

I suoi gestori di eventi di SyntheticEvent, un involucro cross-browser intorno evento nativo del browser . Ha lo stessa interfaccia dell'evento nativo del browser, incluso stopPropagation() e preventDefault(), eccetto che gli eventi funzionano allo stesso modo su tutti i browser, . Event System