実現したいこと
Nextjs で以下のような画面遷移で構成されるWEBを作成しています。
上記の図についての概要は以下です。
- 画面Aと画面Bには、画面C1に遷移するためのボタンあるいはテキストリンクがあり、それらをクリックすることで画面C1 に遷移します。
- 画面C1 には 「次へ進む」というボタンがありこれをクリックすると画面C2に遷移します。
- 同様に画面C2 には 「次へ進む」というボタンがありこれをクリックすると画面C3に遷移します。
- 画面C3には「画面C1にもどる」というボタンがありこれをクリックすると画面C1に戻ります。
- また画面C1には以下のようにヘッダーがあり、ヘッダーの左端には「前の画面に戻る」という趣旨の左向き矢印のアイコンボタンが配置されている。以下でこれを(ヘッダの)「戻る」ボタンと言います。
実現したいことは以下です。
- 画面AまたはBから画面C1に遷移し、その後C2からC3へと進み、C1 に戻ってきたときに、C1のヘッダの「戻る」ボタンをクリックしたときに、はじめにC1に遷移してきたときの遷移元(がAならばAに、BならばB)に戻るようにしたい。
発生している問題・分からないこと
現状では、画面C1のヘッダの「戻る」ボタンがクリックされると、単に
const router = useRouter()
で取ってきた router
の back
メソッドを実行させているので、画面C3から戻ってきてC1に遷移したときに 「戻る」ボタンをクリックすると、C3 に遷移してしまう。
該当のソースコード
特になし
試したこと・調べたこと
上記の詳細・結果
検索して調べましたが、上記を実現できるような(できれば簡潔な)方法が見つかりませんでした。
補足
-
上記の問題が発生している実際の環境のNextのバーバージョンは12ですが、最新の14系だったらこういうことができる、という回答で問題ありません。
-
何らかの node モジュールを使うのがよい(or使うしかない)という回答でもけっこうです。
0 コメント