2
のやり方について、私はサーバからデータを取得しているのを見てきました。しかし、ポストリクエストはどうですか?どうやってするか?私も、最も単純なアプローチは、ビルトインされているほとんどのブラウザでは、fetchを使用することですjquery
reduxとの対話では、非同期の例のための投稿要求
おかげ
のやり方について、私はサーバからデータを取得しているのを見てきました。しかし、ポストリクエストはどうですか?どうやってするか?私も、最も単純なアプローチは、ビルトインされているほとんどのブラウザでは、fetchを使用することですjquery
reduxとの対話では、非同期の例のための投稿要求
おかげ
をインポートしたくないので、私は、それを行うためにjquery.ajax
を使用したくありません。 SuperAgentのような他のより汎用性の高いオプションも調べることができます。これは必須ではあるが、jQueryよりはるかに小さいものです。あなたがサポートしたいブラウザに依存polyfill for fetchを含める必要があります覚えておいてください
class Example extends React.Component {
constructor() {
super();
this.state = { user: {} };
this.onSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
var self = this;
fetch('http://reqres.in/api/users', {
method: 'POST',
data: {
name: self.refs.name,
job: self.refs.job
}
})
.then(function(response) {
return response.json()
}).then(function(body) {
console.log(body);
});
}
render() {
return (
<form onSubmit={this.onSubmit}>
<input type="text" placeholder="Name" ref="name"/>
<input type="text" placeholder="Job" ref="job"/>
<input type="submit" />
</form>
);
}
}
ReactDOM.render(<Example/>, document.getElementById('View'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.min.js"></script>
<div id="View"></div>
:ここで反応し、フェッチ組み合わせた基本的な例です。
Example on JSBinここでは機能しない可能性があります。
'render()'メソッドで 'bind(this)'を使うことは、すべての単一のレンダーが新しい機能を作成するので、悪い習慣です。 'this.onSubmit = this.handleSubmit.bind(this)'のようなコンストラクタで行い、 'render.'メソッドに' this.onSubmit'を添付してください。 – Skay
良い提案、私の答えを編集してください。 –
これは、質問に含まれるReduxを使用することをお勧めしません。 APIコールは、アクションの一部である必要があります。 – YPCrumble