デフォルトのリダイレクトタイプ
Next.jsのredirectは、使用場所によってデフォルトのリダイレクトタイプが異なります。
-
Server Actions:
push(ブラウザ履歴に新しいエントリを追加) -
その他の場所:
replace(現在のURLをブラウザ履歴で置き換え)
リダイレクトタイプの変更方法
redirectの第2引数でtypeパラメータを指定することで、デフォルトの動作を上書きできます。
基本的な使い方
import { redirect, RedirectType } from 'next/navigation'
// replaceを使用
redirect('/redirect-to', RedirectType.replace)
// pushを使用
redirect('/redirect-to', RedirectType.push)
注意点
-
Server Componentsでは
typeパラメータは効果がありません -
redirectはエラーをスローするため、try/catchの外で呼び出す必要があります - クライアントコンポーネントのイベントハンドラでは
useRouterを使用してください
参考