シナリオ
アプリのさまざまな画面 (destinationScreen、attractionScreens、reviewScreen など) からユーザーを loginScreen/signUpScreen にナビゲートしています。ログインに成功した後、loginScreen/signupScreen に移動した場所から同じ画面に戻します。
したがって、サインアップ/ログインプロセスに関連するすべての画面をポップしたいと思います3 screensと言います。
私がすでに試したこと
私はすでにnavigator.popUntilを試しましたが、次のように毎回単一の画面に戻りたい場合にのみ機能します。
推しルート:
Navigator.push(
context,
MaterialPageRoute(
settings: RouteSettings(name: '/loginRedirect'),
builder: (context) => AttractionScreen(
attractionData: att,
)),
);
signInScreen でのポップ ルート:
Navigator.popUntil(context, ModalRoute.withName('/loginRedirect'));
ただし、このシナリオは、単一の特定の画面にルーティングする必要がある場合にのみ機能しますが、私の場合、ユーザーがログイン画面に誘導された場所に応じて、異なる画面にルーティングする必要があります。
今やりたいこと
今、ログインに成功した後、ナビゲータースタックから上位3つの画面をポップする実装が必要です。これをよく検索しましたが、その解決策が見つかりませんでした。では、ナビゲーター スタックから最後のルートをポップするにはどうすればよいでしょうか?