我已经用下面列出的逻辑实现了底部的导航栏,并且我想检查用户是否登录。如果用户在第三个选项卡上登录,我想显示配置文件页面而不是登录页面。这是我的代码,在其中显示底部导航栏,在checkIsLoggedIn()异步函数之后,我被困在该做什么。
之后,我将建立窗口小部件列表以在3个选项卡中显示页面。 代码在下面,
因此,我需要显示SignIn()的位置,如果用户登录,则以其他方式显示登录,它显示“个人资料”页面。 请在这里帮我。
答案 0 :(得分:2)
这可能有帮助。
Future<void> checkIfLoggedIn() async {
SharedPreferences localStorage = await SharedPreferences.getInstance();
var id = localStorage.getString('id');
if (id != null) {
setState(() {
_children[2] = ProfilePage();
});
}
}
答案 1 :(得分:0)
在checkIfLoggedIn()
内,与_isLoggedIn
一起编写以下代码:
_children[2] = Profile()
。
答案 2 :(得分:0)
您可以按如下所示设置最后一个BottomNavigationItem
BottomNavigationItem(
icon:_isLoggedIn ? Icons.person : Icons.key,
title:Text(_isLoggedIn ? 'Account' : 'Log in' )
)
您可以处理点击事件,并由相同的三元运算符使用build()
变量在_isLoggedIn
中设置适当的页面
build(){
return Scaffold(
body:_isLoggedIn?ProfilePage():LoginPage()
);
}