[英]getter called on null in flutter gives error screen
登录后,我有一个登录名和一个更新配置文件屏幕。 在这里,我在genesis
方法中设置用户配置文件。 我面临着奇怪的问题。 大多数情况下,我会看到以下屏幕,其中确实有用户的信息。 特定列是gender
,在 null 上调用它是错误。
//store user data
_user = new UserModel(
id: data['collection']['userData']['id'].toString(),
name: data['collection']['userData']['name'],
email: data['collection']['userData']['email'],
phone: data['collection']['userData']['phone_number'].toString(),
avatar: data['collection']['userData']['avatar'],
age: data['collection']['userData']['age'].toString(),
gender: data['collection']['userData']['gender'].toUpperCase().toString() ?? 'MALE',
totalscore: 100,
// totalscore: data['collection']['userData']['total_sessions_count'],
totaldays: data['collection']['userData']['total_session_by_days_count'],
);
以上是在本地存储数据的genesis
方法中的代码。
在用户profile update screen
代码如下:
Widget build(BuildContext context) {
final userProvider = Provider.of<Genesis>(context, listen: false);
_user = userProvider.user;
print('------------------------------------');
print(_user);
print('------------------------------------');
if(_firsTime){
setState(() {
_gender = _user.gender.toUpperCase() ?? _gender;
_nameController.text = _user.name;
_emailController.text = _user.email;
_ageController.text = _user.age;
_phoneController.text = _user.phone;
_avatar = _user.avatar ?? 'https://placehold.it/200x200';
_firsTime = false;
});
}
}
what is the issue here ?
从错误消息中,很明显您在 null 上调用了“ gender
”。
在访问它的属性之前检查您的_user
是否为空。
你可以试试看
_gender = _user?.gender?.toUpperCase() ?? _gender;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.