Po przesłaniu formularza próbuję doSomething()
zamiast domyślnego zachowania postu.
Najwyraźniej w React onSubmit jest zdarzeniem obsługiwanym przez formularze. Jednak gdy spróbuję poniższego kodu:
var OnSubmitTest = React.createClass({
render: function() {
doSomething = function(){
alert('it works!');
}
return <form onSubmit={doSomething}>
<button>Click me</button>
</form>;
}
});
Metoda doSomething()
jest uruchamiana, ale później nadal wykonywane jest domyślne zachowanie wiadomości.
Możesz to przetestować w moim jsfiddle .
Moje pytanie: Jak zapobiec domyślnemu zachowaniu postów?
javascript
forms
form-submit
reactjs
onsubmit
Lucas du Toit
źródło
źródło
Sugerowałbym również przeniesienie obsługi zdarzeń poza renderowanie.
var OnSubmitTest = React.createClass({ submit: function(e){ e.preventDefault(); alert('it works!'); } render: function() { return ( <form onSubmit={this.submit}> <button>Click me</button> </form> ); } });
źródło
<form onSubmit={(e) => {this.doSomething(); e.preventDefault();}}></form>
to działa dobrze dla mnie
źródło
Możesz przekazać zdarzenie jako argument do funkcji, a następnie zapobiec domyślnemu zachowaniu.
var OnSubmitTest = React.createClass({ render: function() { doSomething = function(event){ event.preventDefault(); alert('it works!'); } return <form onSubmit={this.doSomething}> <button>Click me</button> </form>; } });
źródło
this
:{this.doSomething}
lub{doSomething}
jest w porządku, ponieważdoSomething
jest zrender()
.