【发布时间】:2021-06-14 22:19:37
【问题描述】:
我的应用程序有一个登录页面,并使用访问令牌登录用户。在应用程序启动时,如果用户仍然有一个令牌(这意味着自上次登录后没有注销),主页是 X,但如果用户没有令牌主页是登录页面。没有问题,因为我使用 SharedPreferences 来存储令牌,但我决定使用 flutter_secure_storage 包。它的功能是异步工作的。所以问题是,在我将 SharedPreferences 更改为 flutter_secure_storage 后,如果用户没有令牌并启动应用程序,页面 X 将显示几秒钟,然后登录页面即将到来。我对所有 flutter_secure_storage 变量使用了 async/await 函数,但不能将它用于主页。我认为这是因为我不能让应用程序等待令牌检查,它开始构建页面 X,然后意识到令牌为空,然后构建登录页面。这可能不是真的,只是我的想法。我的家庭密码:是
home: Constants.storage.read(key: "token") !=
null
? ChangeNotifierProvider(
create: (context) => BooksPageViewModel(),
child: BooksView(),
)
: ChangeNotifierProvider(
create: (context) => LoginPageViewModel(),
child: LoginPage(),
));
我尝试创建一个 Future 函数,但无法将其分配给 home:... 我试图回家:......异步但没有发生。 如何将我的主页设置为等待令牌检查?提前致谢。
【问题讨论】:
-
您可以使用
FutureBuilder显示初始屏幕(或加载指示器),直到您的未来返回一个值,然后使用该值来决定显示哪个页面。