小编Mic*_*ota的帖子

如何在重定向方法中清除go_router导航历史记录

在应用程序启动时,我有一些配置页面(可以由用户跳过),用户设置一次,最后在仪表板页面中结束。

可能的导航流程(取决于用户已经设置的内容以及过去跳过的内容):

'/' -> '/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)

flutter flutter-go-router

7
推荐指数
1
解决办法
5577
查看次数

标签 统计

flutter ×1

flutter-go-router ×1