使用以下代碼后,我的視圖中不斷出現此錯誤The following _CastError was thrown building Builder: Null check operator used on a null value,我不明白如何解決它。當我檢查空電子郵件的 if 陳述句時,顯然該值不會為空,所以我添加了一個!,為什么它一直拋出這個錯誤?有人可以給建議嗎?
final TextEditingController _email = TextEditingController();
final TextEditingController _password = TextEditingController();
bool _isChecked = false;
@override
void initState() {
super.initState();
UserPreferences.init();
if (UserPreferences.getEmail != '') {
setState(() {
_isChecked = true;
_email.text = UserPreferences.getEmail!;
_password.text = UserPreferences.getPassword!;
});
}
}
class UserPreferences {
static SharedPreferences? _preferences;
static void init () async {
_preferences = await SharedPreferences.getInstance();
}
static setEmail(String username) async {
await _preferences?.setString('email', username);
}
static setPassword(String password) async {
await _preferences?.setString('password', password);
}
static String? get getEmail => _preferences?.getString('email');
static String? get getPassword => _preferences?.getString('password');
}
uj5u.com熱心網友回復:
試試這個:
static Future<void> init () async {
_preferences = await SharedPreferences.getInstance();
}
initState應該是這樣的:
@override
void initState() {
super.initState();
UserPreferences.init().then((_){
if (UserPreferences.getEmail != '') {
setState(() {
_isChecked = true;
_email.text = UserPreferences.getEmail!;
_password.text = UserPreferences.getPassword!;
});
}
});
}
uj5u.com熱心網友回復:
當我簽入空電子郵件的 if 陳述句時,顯然該值不會為空
這是一個錯誤的假設。null != ''評估為真。因為實際上 null 不是空字串
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426608.html
