【发布时间】:2019-12-05 01:08:18
【问题描述】:
我正在构建一个带有用户身份验证的 Flutter 应用程序(firebase 等等),并希望为经过身份验证和未经身份验证的用户提供两组路由:
未经身份验证的用户: /登录 /登记 ...
经过身份验证的用户: /家 ...
我试图在顶部小部件上有一个类似这样的开关:
switch(_user.status) {
case UserStatus.Unauthenticated:
return MaterialApp(
title: _title,
theme: _themeData,
routes: ....
initialRoute: "/login",
);
case UserStatus.Authenticated:
return MaterialApp(
title: _title,
theme: _themeData,
onGenerateRoute: _generateRoute,
initialRoute: "/",
);
(我在树的顶部得到了 _user 值和 ChangeNotifierProvider)但显然不可能有 2 个顶级导航器。
其次,我尝试在_generateRoute 函数中按下开关,但有一些缓存:当树重建时(例如当_user.status 更改时)_generateRoute 函数不会再次调用,所以不会不行。
你是怎么解决这个问题的?
【问题讨论】:
标签: flutter flutter-navigation flutter-provider