🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

3688閲覧

Next.jsでネストしたルーティングの場合のディレクトリ構造が分かりません

nabe_R

総合スコア2

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/01/21 12:05

編集2021/01/22 06:41

実現したいこと

/users/1/rooms/1のように2つの動的なルーティングの作る時にroomはどこに置くのか、2つの動的ルーティングを実現する為のコードが知りたいです。(または、参考サイト)

現在のコード

pages |- users |- [uid].tsx

jsx

1const router = useRouter(); 2const { uid } = router.query; 3 4//roomはこう当てはめるかなという感じで書いています。 5{rooms.map((room) => { 6 return ( 7 <Link href={`/users/${uid}/rooms/${room.id}`} key={room.id}> 8 <a>{room.title}</a> 9 </Link> 10 ); 11})}

リンクは/users/1/rooms/1などに飛んでくれますが、not foundでページがない状態なのでどこかにroomディレクトリとそのファイルを置かなければいけませんが、置く場所が分からず、困っております。

知見のある方のお力をいただきたいです。よろしくお願いします。

追記

最新のディレクトリ構成

users └── [userId] ├── index.tsx └── rooms └── [roomId].tsx

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nabe_R

2021/01/21 12:48 編集

ご返信ありがとうございます! ディレクトリ構成はこんな感じのイメージでしょうか? ([uid].tsxとroomsが同じ階層です) もしこのイメージ通りであれば、試してみましたが、変化はありませんでした。 ``` - pages |-users |- [uid].tsx |- rooms |- [rid].tsx ```
nabe_R

2021/01/21 13:07

大変恐縮ですが、こちら、NextとNuxtの見間違いではないでしょうか?
gouf

2021/01/21 15:41

見間違い、してますね。申し訳ないです
nabe_R

2021/01/22 06:55

解決にお力を貸していただきありがとうございました! 無事に解決策が分かりましたのでお伝えさせていただきました! 力を貸せる側になれるよう頑張ります。
guest

回答1

0

ベストアンサー

こちらの例にあるようにpages/post/[id]/[comment].jsというディレクトリ構成にすることができます
今回の場合はpages/users/[userId]/rooms/[roomId].jsだと思います
https://github.com/vercel/next.js/tree/canary/examples/dynamic-routing

投稿2021/01/22 01:43

mikan3rd

総合スコア220

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nabe_R

2021/01/22 06:38

ご回答ありがとうございます! 公式を見て自分のディレクトリ名と構成に落とし込もうとすると分からなくなっていたので、 【今回の場合はpages/users/[userId]/rooms/[roomId].jsだと思います】 こちらのおかげで理解することができました!ありがとうございます。 ディレクトリ名がこれでいいのか少し不安なので、もしよろしければ追記に書きますので見ていただけませんか? BA回答に今の時点でしたいのですが、やりとりができなくなるのか分からないので保留させていただきます。(BA後もやりとりできそうと判明したらBAにいたします。)
mikan3rd

2021/01/23 12:20

追記にあるディレクトリ構成で良いと思います!
nabe_R

2021/01/24 01:36

追加質問までご丁寧に対応してくださり本当に助かりました! 最後までご対応していただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問