【发布时间】:2021-12-16 21:13:17
【问题描述】:
我有如下错误:
必须初始化不可为空的变量“sessionUser”。尝试添加初始化表达式...
我在网上搜索了很多,但没有找到解决问题的方法。你能帮我解决这个问题吗?
import 'dart:convert';
import 'package:flutter/widgets.dart';
import 'package:shared_preferences/shared_preferences.dart';
class UserModel {
String id;
String nom;
String email;
UserModel({
required this.id,
required this.nom,
required this.email
});
static UserModel sessionUser;
factory UserModel.fromJson(Map<String,dynamic> i) => UserModel(
id: i['id'],
nom: i['nom'],
email: i['email']
);
Map<String,dynamic> toMap() => {
"id": id,
"nom": nom,
"email": email
};
static void saveUser(UserModel user) async {
SharedPreferences pref = await SharedPreferences.getInstance();
var data = json.encode(user.toMap());
pref.setString("user", data);
pref.commit();
}
static void getUser() async {
SharedPreferences pref = await SharedPreferences.getInstance();
var data = pref.getString("user");
if (data != null) {
var decode = json.decode(data);
var user = await UserModel.fromJson(decode);
sessionUser = user;
} else {
sessionUser = UserModel();
}
}
static void logOut() async {
SharedPreferences p = await SharedPreferences.getInstance();
p.setString("user", null);
sessionUser = null;
p.commit();
}
}
【问题讨论】:
标签: flutter