Flutter 在FlatterWeb中管理会话和导航的最佳方式是什么
我的项目上有两个网页 我需要管理用户会话。如果用户已登录,则显示主页;如果用户未登录,则显示登录页面 我正在使用提供程序检查会话的状态Flutter 在FlatterWeb中管理会话和导航的最佳方式是什么,flutter,dart,flutter-web,Flutter,Dart,Flutter Web,我的项目上有两个网页 我需要管理用户会话。如果用户已登录,则显示主页;如果用户未登录,则显示登录页面 我正在使用提供程序检查会话的状态 @override Widget build(BuildContext context) { return Consumer<LoginGeneralNotifier>( builder: (context, appGenaralNotifier, _) { return appGenaralNotif
@override
Widget build(BuildContext context) {
return Consumer<LoginGeneralNotifier>(
builder: (context, appGenaralNotifier, _) {
return appGenaralNotifier.getLogged()
? HomePage()
: LoginPage();
},
);
}
}
@覆盖
小部件构建(构建上下文){
退货消费者(
生成器:(上下文,appGenaralNotifier,382;){
返回appGenaralNotifier.getLogged()
?主页()
:LoginPage();
},
);
}
}
问题是url在我登录后不会更改您可能需要使用Navigator.of(context).pushNamed(HomePageNamedLote) 这可以在initState中完成,如下所示:
您可能需要使用Navigator.of(context).pushNamed(HomePageNamedLote) 这可以在initState中完成,如下所示: 我所做的是 我创建了一个类,在其中保存所有全局变量 在那里我创建了一个变量
bool loginStatus代码>
并创建两种方法get和set来处理该值
只要登录成功,我就将该值设置为trueloginStatus=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();
}
我所做的是
我创建了一个类,在其中保存所有全局变量
在那里我创建了一个变量bool loginStatus代码>
并创建两种方法get和set来处理该值
只要登录成功,我就将该值设置为trueloginStatus=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();
}
在编程世界中,全局变量是非常不受欢迎的(除非绝对没有其他选择可用)。改用用户会话。退房该软件包在flatter中添加了用户会话支持,并且易于使用
// Store value to session
await FlutterSession().set("token", myJWTToken);
// Retrieve item from session
dynamic token = await FlutterSession().get("token");
在编程世界中,全局变量是非常不受欢迎的(除非绝对没有其他选择可用)。改用用户会话。退房该软件包在flatter中添加了用户会话支持,并且易于使用
// Store value to session
await FlutterSession().set("token", myJWTToken);
// Retrieve item from session
dynamic token = await FlutterSession().get("token");