Per qualche motivo i miei gestori onClick aggiungono un parametro di query vuoto al mio URL quando faccio clic su di essi. Sono stato in grado di risolvere il problema aggiungendo event.preventDefault ai miei gestori di eventi, ma mi piacerebbe capire meglio cosa è successo realmente e se questa fosse la soluzione corretta. Per il contesto, il codice seguente è un componente semplice per testare alcune funzionalità di OAuth 2. I gestori onClick attivano solo un'azione di reflusso. Vedrai che ho aggiunto e.preventDefault() a tutti loro. Senza questa correzione, ogni volta che si attiva una di queste funzioni, il mio url cambierà da http://localhost:3000/#/signIn a http://localhost:3000/?#/signIn. Sto anche usando react-router.Perché un evento onClick reagisce aggiungendo un punto interrogativo al mio URL?
// dependencies -------------------------------------------------------
import React from 'react';
import hello from '../../libs/hello';
import Actions from '../../actions/Actions';
import UserStore from '../../stores/userStore';
var Signin = React.createClass({
// life cycle events --------------------------------------------------
componentDidMount: function() {
},
render: function() {
return (
<form>
<h2>Sign in with Google</h2>
<button className="btn btn-primary" onClick={this._signIn} >
<i className="fa fa-google" />
<span> Google</span>
</button>
<button className="btn btn-info" onClick={this._logToken} >Log Token</button>
<button className="btn btn-warning" onClick={this._signOut}>Sign Out</button>
</form>
);
},
// custom methods -----------------------------------------------------
_signIn: function (e) {
e.preventDefault();
Actions.signIn();
},
_signOut: function (e) {
e.preventDefault();
Actions.signOut();
},
_logToken: function (e) {
// e.preventDefault();
Actions.logToken();
}
});
export default Signin;
Grazie. Questo è stato super utile. – Constellates