Flutter go_router:重定向后恢复导航(例如登录)

问题描述 投票:0回答:1

我有一条路线,

/authenticated/page
,只有用户登录后才能查看。

go_router 的官方重定向示例展示了如何执行此类“登录门”,但它重定向到

/

重定向(例如登录)后如何恢复导航?即:

/
→ 点击链接
/authenticated/page
→ 被登录页面屏蔽 → 登录成功 → 打开
/authenticated/page

flutter flutter-go-router
1个回答
1
投票

我花了一段时间试图弄清楚这一点,这就是我想到的。我不喜欢这个解决方案,但它有效......

对于我想强制登录的路由,我检查用户是否已登录:

GoRoute(
    path: "account",
    name: "/account",
    builder: (context, state) {
      if (authRepository.currentUser == null) {
        return const SignInScreen(redirectTo: "/account");
      }
      return const ProfileScreen();
    },
)

请注意,当当前用户为

null
时,此路由将重定向到
SignInScreen
,并将
redirectTo
设置为“/account”。

然后在

SignInScreen()
中创建一个可选的
redirectTo
参数,如果设置该参数,将在成功登录后重定向到该路由。

© www.soinside.com 2019 - 2024. All rights reserved.