useNavigate
useNavigate
フックは、ユーザーの操作や効果に応じてブラウザでプログラム的にナビゲートできる関数を返します。
このフックよりも、action
やloader
でredirect
を使用する方が良いことが多いですが、それでも使用できるケースがあります。
引数
to: string
最も基本的な使い方は、href文字列を指定することです。
パスは相対的にも指定できます。
useNavigate()
の動作については、future.v3_relativeSplatPath
未来フラグに関する注記を、useResolvedPath
ドキュメントのスプラットパスセクションを参照してください。
to: Partial<Path>
Partial<Path>
値を渡すこともできます。
to: Number
数値を渡すと、ブラウザは履歴スタックを前後に移動します。
ブラウザの履歴スタックはアプリケーションに限定されていないため、この操作によってアプリケーションから移動してしまう可能性があることに注意してください。
options
2番目の引数はオプションオブジェクトです。
- replace: boolean - 新しいエントリをプッシュするのではなく、履歴スタックの現在のエントリを置き換えます。
- relative:
"route" | "path"
- リンクの相対パスの動作を定義します。"route"
はルート階層を使用するため、".."
は現在のルートパターンのすべてのURLセグメントを削除します。一方、"path"
はURLパスを使用するため、".."
は1つのURLセグメントを削除します。
- state: any - 次の場所に永続的なクライアントサイドルーティング状態を追加します。
- preventScrollReset: boolean -
<ScrollRestoration>
を使用している場合、ナビゲート時にスクロール位置がウィンドウの上部にリセットされないようにします。 - flushSync: boolean - このナビゲーションの初期状態の更新を、デフォルトの
React.startTransition
ではなく、ReactDOM.flushSync
呼び出しでラップします。 - viewTransition: boolean - このナビゲーションにビュー遷移を有効にします。最終状態の更新を
document.startViewTransition()
でラップします。- このビュー遷移に特定のスタイルを適用する必要がある場合は、
useViewTransitionState()
も活用する必要があります。
- このビュー遷移に特定のスタイルを適用する必要がある場合は、