【发布时间】:2021-08-23 21:20:36
【问题描述】:
我有一个用户可以在其中创建事件的视图,如果用户创建事件,则通过共享首选项保存一个值,该值确定用户是否是管理员。如果用户现在进入视图,无论用户是管理员还是访客,构建小部件都应该构建不同的小部件。我有一个功能可以检查用户是管理员还是访客。但是整个事情还不能正常工作,并且没有构建正确的小部件。 也许我犯了一个愚蠢的错误,或者这不是最佳做法,我将不胜感激每一点帮助!
这是我的构建方法
@override
Widget build(BuildContext context) {
return checkifadmin() != null ? buildGuestView() : buildAdminView();
}
这是我的函数,检查它是否是管理员
Future<bool> checkifadmin() async {
final prefs = await SharedPreferences.getInstance();
final myevent = prefs.getString('event');
if (myevent == widget.eventName) {
print('Your are admin');
return true;
} else {
print('you are a guest');
return false;
}
}
该功能完美运行,始终可以正确识别。问题可能出在构建方法上
当我将 BuildGuestView 更改为:
return checkifadmin() != null ? buildAdminView() : buildGuestView();
buildadminview 总是在构建。
【问题讨论】:
标签: flutter build widget sharedpreferences