Это не полный подробный ответ, а способ описания процедуры, которой вы можете следовать.
Что ж, вы можете сохранить информацию о пользователе в своем приложении. Я вижу, что вы только сохраняете ID и используете sharedPreferences
в этой строке.
sharedPreferences.setInt("id", jsonResponse['id']);
Другие поля можно сохранить таким же образом, используя тот же способ, который вы используете с ID
sharedPreferences.setString("firstName", jsonResponse['firstName']);
sharedPreferences.setString("lastName", jsonResponse['lastName']);
sharedPreferences.setString("accountName", jsonResponse['accountName']);
sharedPreferences.setString("email", jsonResponse['email']);
Затем на главной странице вам необходимо восстановить эти данные "так же, как вы делаете это в функции checkLoginStatus()
.
Вам нужен класс для User()
, чтобы организовать ваши данные.
class User {
int id;
String firstName;
String email;
User({this.id, this.firstName, this.email});
}
A getUser()
, чтобы получить ваши данные, используя User
class
Future<User> getUser() async {
sharedPreferences = await SharedPreferences.getInstance();
var id = sharedPreferences.getInt("id");
var firstName = sharedPreferences.getString("firstName");
var email = sharedPreferences.getString("email");
return User(id: id, firstName: firstName, email: email);
}
и в вашей функции initState () вызовите эту функцию следующим образом:
SharedPreferences sharedPreferences;
Future<User> myUser;
@override
void initState() {
super.initState();
checkLoginStatus();
myUser = getUser();
}
Код не проверен!