小编Roh*_*ala的帖子

通过 go_router 导航,它并不是每次都重建屏幕

我正在我的网络应用程序中通过 go router 进行导航。但我在更改屏幕时遇到的问题是,当我第一次打开特定屏幕时,它会使用 InitState() 构建整个屏幕,但在转到另一个屏幕后,我再次单击该屏幕,然后它不会重建(意味着不运行 initState())。我也附上了我的代码片段。

final routerProvider = Provider<GoRouter>((ref) {
  final loggedInState = ref.read(isLoggedInProvider);
  return GoRouter(
    refreshListenable: loggedInState,
    routes: [
      HomeRoute(), // /
      PeopleRoute(), //   /people
      LoginRoute(),
    ],
    redirect: (state) {
      // if the user is not logged in, they need to login
      final loggedIn = loggedInState.value;
      final loggingIn = state.subloc == '/login';
      if (!loggedIn) return loggingIn ? null : '/login';

      // if the user is logged in but still on the login page, send them to
      // …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-web flutter-go-router

5
推荐指数
0
解决办法
2039
查看次数

标签 统计

dart ×1

flutter ×1

flutter-go-router ×1

flutter-web ×1