【发布时间】:2020-02-12 11:55:35
【问题描述】:
我的 Flutter 应用程序每次启动时都会检查 SharedPreferences 中保存的数据。稍后在应用程序中使用它,但是当我第一次在设备中运行该应用程序时,保存了SharedPreferences,因此它以null 获取所有数据。所以我想确保它检查文件本身是否存在而不是检查特定值,
注意:我正在使用这个shared_preferences futter 包。
这是我的代码:
checkingTheSavedData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String username = prefs.getString('username');
if (username == null) {
Navigator.pushReplacementNamed(context, '/login');
} else {
Navigator.pushReplacementNamed(context, '/main_page');
}
}
所以,对于第一次运行,它会运行 Navigator.pushReplacementNamed(context, '/main_page');,但数据为空,之后当我进行真正的登录并且数据已经保存时,它工作正常。知道如何以适当的方式处理这个问题吗?
【问题讨论】:
-
您要问的不是
shared_preferences的工作原理。你实际上做的是对的。但是你说第一次运行还是去/main_page路线? -
是的,第一次运行它会进入主页并显示所有数据为空,我认为它忽略了` if (username == null) {` 因为它甚至没有在line` SharedPreferences prefs = await SharedPreferences.getInstance();` 所以我试图让它检查文件是否已经存在。
-
调试的时候,在你做检查的那一行放一个断点,看看用户名是什么
标签: android ios flutter dart sharedpreferences