[英]how is the best way to manage session and navigation in flutter web
你可能想使用 Navigator.of(context).pushNamed(HomePageNamedRoute);
這可以在 initState 中完成,如下所示: Flutter Redirect to a page on initState
我做的是
我創建了一個類,在其中保留所有全局變量
在那里我創建了一個變量bool loginStatus;
並創建兩個方法get和set來處理值
每當登錄成功時,我都會將該值設置為 true loginStatus=true;
在init()
方法的新頁面上,如果值為 false,我正在檢查變量的值,然后將用戶扔到登錄頁面,否則繼續
class GlobalValues{
static bool loginStatus;
static void setLoginStatus(bool val) {
loginStatus = val;
}
static bool getLoginStatus() {
return loginStatus == null ? false : loginStatus;
}
}
如果登錄成功,在登錄頁面上
GlobalValues.setLoginStatus(true);
在 init 方法中的其他類頁面上
@override
void initState() {
if (GlobalValues.getLoginStatus()) {
// call your login page class here
//Navigator.of(context).pushNamed(LoginPageNamedRoute);
Navigator.pop(context);
}
super.initState();
}
全局變量在編程世界中受到強烈反對(除非絕對沒有其他替代方案可用)。 改用用戶會話。 查看FlutterSession 。 該包在 Flutter 中添加了用戶會話支持,並且易於使用。
// Store value to session
await FlutterSession().set("token", myJWTToken);
// Retrieve item from session
dynamic token = await FlutterSession().get("token");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.