useNavigation

このフックは、保留中のページナビゲーションに関する情報を提供します。

import { useNavigation } from "@remix-run/react";
 
function SomeComponent() {
  const navigation = useNavigation();
  // ...
}

プロパティ

フォームが送信された場合、そのフォームのアクション。

// 次のいずれかから設定されます
<Form action="/some/where" />;
submit(formData, { action: "/some/where" });

フォームが送信された場合、そのフォームのメソッド。

// 次のいずれかから設定されます
<Form method="get" />;
submit(formData, { method: "get" });

<Form> または useSubmit から開始された DELETEPATCHPOST、または PUT ナビゲーションには、フォームの送信データが添付されます。これは主に、submission.formData FormData オブジェクトを使用して「楽観的な UI」を構築するのに役立ちます。

例:

// このフォームには `email` フィールドがあります
<Form method="post" action="/signup">
  <input name="email" />
</Form>;
 
// そのため、ナビゲーションが保留中の間、ナビゲーションには `navigation.formData` にフィールドの値が含まれます。
navigation.formData.get("email");

GET フォーム送信の場合、formData は空になり、データは navigation.location.search に反映されます。

これは、次のロケーションがどこになるかを示します。

  • idle - 保留中のナビゲーションはありません。
  • submitting - POST、PUT、PATCH、または DELETE を使用したフォーム送信により、ルートアクションが呼び出されています。
  • loading - 次のルートのローダーが、次のページをレンダリングするために呼び出されています。

通常のナビゲーションと GET フォーム送信は、次の状態を遷移します。

idle → loading → idle

POST、PUT、PATCH、または DELETE を使用したフォーム送信は、次の状態を遷移します。

idle → submitting → loading → idle