Vì một số lý do, trình xử lý onClick của tôi đang thêm tham số truy vấn trống vào url của tôi khi tôi nhấp vào chúng. Tôi đã có thể khắc phục vấn đề bằng cách thêm event.preventDefault vào trình xử lý sự kiện của mình nhưng tôi muốn hiểu rõ hơn những gì thực sự đã xảy ra và nếu đây là giải pháp đúng. Đối với ngữ cảnh, mã dưới đây là một thành phần đơn giản để kiểm tra một số chức năng OAuth 2. Trình xử lý onClick chỉ kích hoạt hành động hồi lưu. Bạn sẽ thấy tôi đã thêm e.preventDefault() vào tất cả chúng. Nếu không có sửa chữa đó, bất cứ lúc nào tôi kích hoạt một trong những chức năng url của tôi sẽ thay đổi từ http://localhost:3000/#/signIn đến http://localhost:3000/?#/signIn. Tôi cũng đang sử dụng bộ phản ứng-router.Tại sao sự kiện onClick phản ứng lại gắn dấu chấm hỏi vào url của tôi?
// 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;
Cảm ơn. Điều này cực kỳ hữu ích. – Constellates