アプリ開発・ゲーム開発のための勉強ブログ

FlutterとUnrealEngineの勉強をしています。

【Flutter】GoRouter go()とpush()の使い分け

goとpushの使い分けはルート階層を意識して行う必要があります。

goでは前のルートを破棄してターゲットルートに飛び、pushでは前のルートの上にターゲットルートを追加しナビゲーションスタックを維持します。

そのためpushで画面遷移を行った場合、前のページに戻ることができます。

https://codewithandrea.com/articles/flutter-navigation-gorouter-go-vs-push/images/nav-stack.webp

 

一方、goではサブルートから上位のルートに戻ることになります。

pushは問題点が多いため出来る限りgoを使用することが推奨されます。

 

商品検索ページ→個別の商品ページ→カートと遷移する場合に

カートから個別の商品ページに戻りたい場合等にはpushを使った方が便利です。

 

 

参考資料

codewithandrea.com

pub.dev

docs.page