0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

【Web】Next.jsを使用した動的ルーティング設定時に発生したエラーの解消方法まとめ

Posted at

はじめに

今年から新たに弊社関連会社の新システム作成でNext.jsを使用し、開発を進めています。
Web自体もかなり久々で、思い出しながら手探りで実装を進めているのですがその際非同期処理関連でエラーが出ていたので対応しました。

出ていたエラーは以下になります。

Error: Route /sample/[id] used params.id . params should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis 

今回はこのエラーを解消した方法を備忘録的にまとめておこうと思います。

解消方法

このエラーですが、どうやらNext.jsのバージョン15より、動的なパラメータに関する処理が非同期になった為直接値を取得しようとするとエラーが発生するようですね。
その為パラメータを取得する際にはPromiseawaitを付与してあげることで解消可能です。

page.tsx
// 修正前
export default async function PostPage(params: {id: string}) {
  const { id } = params;
  console.log({ id });
}

// 修正後
export default async function PostPage(params: Promise<{id: string}>) {
  const { id } = await params;
  console.log({ id });
}

以上になります。

さいごに

Webは何かと専門用語が多いなと感じますが、すごい技術的な進歩を感じますね。
やはりこういった右も左も分からない新しい領域で緊張しながら手を動かすとゾクゾクしますね、自分で言うのもなんですが変態かもしれません(笑)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?