带有底部导航栏的Web导航

时间:2020-03-12 03:40:16

标签: flutter dart

我无法找到最好的解决方案,以使Web应用程序能够响应身份验证状态的更改,同时还可以与BottomNavigationBar完美协作。

Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Inventology',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: BlocBuilder<AuthenticationBloc,AuthenticationState>(
        builder: (context, state) {
          if(state is AuthenticationAuthenticated)
            return Navigator(
              initialRoute: '/products',
              onGenerateRoute: (RouteSettings settings) {
                switch(settings.name) {
                  case '/products':
                    return new MaterialPageRoute(builder: (_) => HomeShell(0), settings: settings);
                  case '/boxes':
                    return new MaterialPageRoute(builder: (_) => HomeShell(1), settings: settings);
                  case '/inventory':
                    return new MaterialPageRoute(builder: (_) => HomeShell(2), settings: settings);
                  default:
                    return new MaterialPageRoute(builder: (_) => HomeShell(0), settings: new RouteSettings(name: '/products'));
                }
              },
            );
          else
            return LoginPage();
        },
      ),
    );
  }

基本上,如果用户通过了身份验证,则他们将启动到应用程序中。我遇到的问题是,在浏览器中编辑URL不会执行任何操作,URL只会恢复为原来的状态。我相信这与使用第二个导航器有关。但是我还应如何使应用响应身份验证状态的更改?另外,更改导航栏上的选项卡将重新构建整个页面,包括视觉上没有吸引力的导航栏。

该如何做才能更改URL以更新路由,以及如何解决更改选项卡的问题?

0 个答案:

没有答案