私は簡単なReactアプリケーションを持っています。フォームにはフォームがあり、ユーザーがsubmitをクリックすると、フォームをサーバーに投稿します。十分に簡単です。Reactjs AJAX呼び出しを複数回呼び出す(1回のクリックで1回だけ!)
しかし、ReactはAJAXコールを複数回(通常は4〜5回)連続して実行しています。これにより、あらゆる種類の問題が発生します。なぜ私はそれがReactのライフサイクルを行う何かを持っていると仮定しますが、わかりません。
私はAJAXライブラリとしてAxiosを使用しているので、おそらく問題はそのライブラリです(私は思っていません)。ここで
は、コードを起動する方法です。
submitEvent(event) {
event.preventDefault();
const apiQueryString = `api/event?${qs.stringify(this.state)}`;
if (this.state.event_title === undefined) {
alert('Event title is required!');
} else {
axios.post(apiQueryString)
.then((result) => {
this.state.id = result.data[0];
store.dispatch({
type: 'ADD_SINGLE_EVENT',
event: this.state,
});
alert('Success creating event!');
this.setState({}); // clear out old values
browserHistory.push('/');
})
.catch((error) => {
console.log(error);
alert('Error with database! See console for output.');
});
}
そして、これは、この機能を起動するボタンである。
<button onClick={this.submitEvent} className="btn btn-primary">Submit</button>
ファイル全体のソースコードはhere、および作業ですページはhereです。
ご協力いただきありがとうございます。
標準フォーム動作を防ぐために、 '
注:異なるブラウザのデフォルト値が異なるので、ボタンの種類(送信またはボタン)を明示的に指定する必要があります。 – Lucero
@rauliyohmc動作していませんでした。 –