Solución:
Una versión completa de la solución incluirá el método upvotes dentro de onClick, pasando e y usando e.preventDefault () nativo;
upvotes = (e, arg1, arg2, arg3 ) => {
e.preventDefault();
//do something...
}
render(){
return (<a type="simpleQuery" onClick={ e => this.upvotes(e, arg1, arg2, arg3) }>
upvote
</a>);
{
Los eventos de reacción son en realidad eventos sintéticos, no eventos nativos. Como está escrito aquí:
Delegación de eventos: React no adjunta controladores de eventos a los propios nodos. Cuando React se inicia, comienza a escuchar todos los eventos en el nivel superior utilizando un solo detector de eventos. Cuando se monta o desmonta un componente, los controladores de eventos simplemente se agregan o eliminan de una asignación interna. Cuando ocurre un evento, React sabe cómo distribuirlo usando este mapeo. Cuando no quedan controladores de eventos en el mapeo, los controladores de eventos de React son simples no operativas.
Intente usar Use Event.stopImmediatePropagation
:
upvote: (e) ->
e.stopPropagation();
e.nativeEvent.stopImmediatePropagation();
intente vincular (esto) para que su código se vea a continuación:
<a className="upvotes" onClick={this.upvote.bind(this)}>upvote</a>
o si está escribiendo en el componente de reacción es6 en el constructor, puede hacer esto
constructor(props){
super(props);
this.upvote = this.upvote.bind(this);
}
upvote(e){ // function upvote
e.preventDefault();
return false
}