我有一個錯誤,如:
不可為空的變數“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();
}
}
uj5u.com熱心網友回復:
您的變數sessionUser未初始化。嘗試這樣的事情:
static UserModel? sessionUser;
的?意味著該變數可以為空,因此您必須在稍后在代碼中使用之前檢查該變數是否為空。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383465.html
標籤:扑
上一篇:拋出了另一個例外:RenderBox沒有布局:CustomRenderShrinkWrappingViewport#f6727relayoutBoundary=up17NEEDS-PAINTNEEDS
