Remix 複数のactionが欲しいとき

FSFB Mitsuki

|
Published at
  • TypeScript

例えばツイッターみたいなアプリを作るとき、一つの画面でツイートもできるしツイートの削除もできるみたいな要望があったとして、そこで必要なサーバー側はPOSTとDELETEに該当する処理が必要になる。 そんな時はactionが受け取る引数におけるrequestからmethodを取得してactionの中で処理を分岐すれば良い。

ここまでは比較的すぐに思いつくような内容だが、もし一つの画面でフォームAとフォームBがあり、それぞれ別々のPOST処理だった場合はどうだろう。 そんな時はhiddenでinputを用意し、name="intent" value="[フォーム名]"で送信し、サーバー側でformData.get('intent')で受け取ったintentを元に処理を分岐すれば良い。 これはKent.C.Dotが提唱していた。