登录后,我有一个登录名和一个更新配置文件屏幕。在这里,我在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 ?
最佳答案
You can try it
_gender = _user?.gender?.toUpperCase() ?? _gender;
关于user-interface - getter在flutter中的null上调用会显示错误屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148129/