ReactとReduxでWebアプリの実装をしています。
リダイレクトの際にPOST送信を行いたく、画面表示せずにフォームを送信するページを挟んでリダイレクトしようと思ったのですが良い方法が分かりません。
componentDidMount()という関数でonloadのようにsubmitできないかなと考えたのですが
この中でsubmitすることは可能ですか?
その場合formはrender内に書いて問題ないのでしょうか。
何か良いやり方があれば教えていただきたいです。よろしくお願い致します。
###追記(サンプルコード)
React
1class Page extends React.Component { 2 componentDidMount() { 3 //ここでonSubmit・リダイレクト? 4 } 5 render() { 6 const redirectUrl = '/test/send' 7 return ( 8 <div> 9 <form 10 onSubmit={this.onSubmit} 11 action={redirectUrl} 12 > 13 <input type="hidden" value="aaa" /> 14 <input type="hidden" value="bbb" /> 15 <input type="hidden" value="ccc" /> 16 </form> 17 </div> 18 ) 19 } 20}
一応ここまで書いてみたのですがReact自信ないのでこれすら合ってるか不安です...
サンプルコードください
追記しました。よろしくお願いします。
ちなみに、ただ POST リクエストがしたいわけではないんですよね?
今のところ受け取り側の処理は考えてないので、送信したあと送り先のURLに遷移できればいいです。
遷移の仕組みはどのように作りましたか?
Router.pushで行っています。
すみません、既存コードに手を加える形でやっているので詳しくないのですが、Next.jsみたいです。
あーなるほど。なんとなく察しました。
遷移の仕組みが出来ていて、form を使う縛りをしてないのであれば componentDidMount の中で fetch (モダンブラウザ標準)や axios.post すればよいのではないでしょうか。
hidden フィールドを持った form を使わなければならない状況にあるならば、ref で頑張るしかないのでまずはそこをはっきりさせましょう。
一応formでという話でしたが縛りではなく、同じようにPOST送信ができるなら楽に書ける方がありがたいです。それ以外思いつかなかっただけなので...
回答1件
あなたの回答
tips
プレビュー