Closed pj-picbook closed 2 years ago
@kawadon780 お手すきでいいんですが、現在のBottomNavigationPageの仕様ちょっと教えてもらって良いですか? 具体的にはGlobalKeyを使用している理由と、WillPopScopeでラップしているのはなぜか?というところです。 ログイン後、一回ログアウトして、再度ログインすると、GlobalKeyが重複しているとのことで落ちてしまいます 🤔
@tokku5552 すみません!履歴みるとRomuさんが実装しているみたいでして、採用している理由はわからないです。
NavigatorStateを使ったBottomNavigationBarの画面遷移を使うとバックキーも対応できるので便利からなのかなーと予想はしていますが。
@kawadon780 失礼しました勘違いしていました 😅 @Romu1273x 改めてお手すきで教えていただいてもよろしいでしょうか?
お手すきでいいんですが、現在のBottomNavigationPageの仕様ちょっと教えてもらって良いですか? 具体的にはGlobalKeyを使用している理由と、WillPopScopeでラップしているのはなぜか?というところです。 ログイン後、一回ログアウトして、再度ログインすると、GlobalKeyが重複しているとのことで落ちてしまいます 🤔
@tokku5552 記事参考に実装したので、理解して切れている訳ではないですが、一応以下が理由になります。
GlobalKeyについて NavigatorStateでタブごとの状態を管理していて、その際にどのStateかを特定するためにGlobalKeyを使ってます。
WillPopScopeのラップについて Andoridのバックボタンはバックグランドまで戻ってしまうので、ちゃんと遷移前の画面がある場合はその画面に戻るように制御するためです。
ログイン後、一回ログアウトして、再度ログインすると、GlobalKeyが重複しているとのことで落ちてしまいます。
憶測ですが、原因は以下だと思います。 1.ログイン→ボトムナビゲーションページ来る→NavigatorStateが新規で生成される。 2.一回ログアウトして、再度ログイン→ボトムナビゲーションページ来る→NavigatorStateを生成しようとするが1で生成したNavigatorStateが残っているため重複する。
【対応案】 ログアウトする際に存在するNavigatorStateを削除する。
@tokku5552
【対応案】 ログアウトする際に存在するNavigatorStateを削除する。
上記ですが、mypage.dart
でログアウトしてFirstPage()
に遷移してますが、それを以下に変えるとNavigatorStateも消えませんか?(試してないので上手く行くか分かりません。)
Navigator.push
→ Navigator.pushAndRemoveUntil
概要
要件
期限
親ストーリー
6