在应用程序启动时,我有一些配置页面(可以由用户跳过),用户设置一次,最后在仪表板页面中结束。
可能的导航流程(取决于用户已经设置的内容以及过去跳过的内容):
'/' -> '/dashboard'
'/' -> '/language' -> '/dashboard'
'/' -> '/welcome'/ -> '/dashboard'
'/' -> '/welcome'/ -> '/language' -> '/dashboard'
Run Code Online (Sandbox Code Playgroud)
如果我从 到/welcome我过去/language能够context.push('/language')导航回来 - 但我知道它可以被重定向到/dashboard。因此,如果我从任何地方转到/dashboard,我总是希望最终得到清晰的导航历史记录,这样,如果用户单击仪表板上的后退按钮,应用程序应该关闭,并且仪表板 AppBar 中没有后退箭头。
final router = GoRouter(
routes: <GoRoute>[
GoRoute(
path: '/',
redirect: (_, __) => '/welcome',
),
GoRoute(
path: '/welcome',
builder: (_, __) => const WelcomePage(),
redirect: (_, __) async {
final skip = await ...
if (skip) {
return '/language';
}
return null; …Run Code Online (Sandbox Code Playgroud)