我一直在尝试让用户尚未登录(只是简单的SharedPreferences
)而保持登录状态,但是每次我保存SP并热加载或热重启我的应用程序时,该函数都会返回null,就像它什么也没保存一样。我已经尝试了一切,但无法解决。这是我的代码:
启动时获取我的SP
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences prefs = await SharedPreferences.getInstance();
isLoggedIn = prefs.getBool('isLoggedIn');
Timer(Duration(milliseconds: 100), ()=>{print(isLoggedIn)});
runApp(MyApp());
}
成功登录后保存我的SP
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool('isLoggedIn', true);
bool isLoggedIn = prefs.getBool('isLoggedIn');
print(isLoggedIn);
共享首选项上的写入功能是异步的,所以您需要等待它们。
尝试await prefs.setBool('isLoggedIn', true);