Open1

flutter:go_routerメモ

TikTakSickTikTakSick

GoRouterのRedirect設定:context.namedLocation()state.namedLocation()

Flutterの公式ドキュメントでは,redirectで特定のルート(画面)に遷移する際,context.namedLocation()メソッドが使用できると記載されている.しかし,GoRouterのリダイレクト(Top-level redirection.画面遷移が行われる前に始まるリダイレクト.※特定の画面遷移操作が行われたときに起こるリダイレクトは,Route-level redirectionと呼ぶ.)では,そのメソッドは使用できない.代わりにstate.Location()メソッドを使えば,リダイレクト操作が実現可能となる.

下記のIssuerに寄せられたコメントおよび,go_routerのコミットログによると,context.namedLocationをTop-level redirectionで使用すれば,エラーを吐くようにしているぽい.

  • GitHub Issue

https://github.com/flutter/flutter/issues/121506#issuecomment-1585146605

It seems like there isn't a way to insert dependencies for redirect. Since we decide to keep named location in goRouterState, the remaining item will be adding some documentation or improving error message on context.namedLocation when using in top-level redirect.

  • GitHubリポジトリ

https://github.com/flutter/packages/commit/f27d3c93f2fb90e5a8d28cfa661405bc742467a9#diff-999d3b39cc560038cc4fa71db72f4b8bc142217ce0dbd5d009dfc4a9a64e8425