Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 颤振中调用null的getter给出错误屏幕_User Interface_Flutter_Dart_Error Handling_Null - Fatal编程技术网

User interface 颤振中调用null的getter给出错误屏幕

User interface 颤振中调用null的getter给出错误屏幕,user-interface,flutter,dart,error-handling,null,User Interface,Flutter,Dart,Error Handling,Null,我有一个登录和更新配置文件屏幕后登录。这里我在genesis方法中设置用户配置文件。我面临着一个棘手的问题。大多数时候,我会看到下面的屏幕,在那里我确实有用户的信息。具体的列是gender,其中调用null是错误 //存储用户数据 _用户=新用户模型( id:data['collection']['userData']['id'].toString(), 名称:数据['collection']['userData']['name'], 电子邮件:数据['collection']['userD

我有一个登录和更新配置文件屏幕后登录。这里我在
genesis
方法中设置用户配置文件。我面临着一个棘手的问题。大多数时候,我会看到下面的屏幕,在那里我确实有用户的信息。具体的列是
gender
,其中调用null是错误


//存储用户数据
_用户=新用户模型(
id:data['collection']['userData']['id'].toString(),
名称:数据['collection']['userData']['name'],
电子邮件:数据['collection']['userData']['email'],
电话:数据['collection']['userData']['phone_number']]。toString(),
头像:数据['collection']['userData']['avatar'],
年龄:数据['collection']['userData']['age'].toString(),
性别:数据['collection']['userData']['gender'].toUpperCase().toString()??“男性”,
总分:100分,
//totalscore:data['collection']['userData']['total_sessions_count'],
totaldays:数据['collection']['userData']['total_session_by_days_count'],
);
上面是
genesis
方法中的代码,它在本地存储数据

在用户
配置文件更新屏幕中
代码如下:


小部件构建(构建上下文){
final userProvider=Provider.of(上下文,listen:false);
_user=userProvider.user;
打印(“---------------------------------------”);
打印(用户);
打印(“---------------------------------------”);
如果(第一次){
设置状态(){
_性别=_user.gender.toUpperCase()??_性别;
_nameController.text=\u user.name;
_emailController.text=\u user.email;
_ageController.text=\u user.age;
_phoneController.text=\u user.phone;
_阿凡达=_user.avatar??'https://placehold.it/200x200';
_第一次=错误;
});
}
}
这里的问题是什么?

从错误消息中可以很清楚地看出,您在null上调用了“
性别”

在访问用户的属性之前,请检查用户是否为空

你可以试试

_gender = _user?.gender?.toUpperCase() ?? _gender;

这个
打印什么(\u用户)给你?是的,我知道,这就是为什么我添加了
条件。但我仍然感到困惑,为什么这是一个问题。我是否以错误的方式通过提供者调用用户数据?如果看不到完整的代码,我们无法说明为什么该特定变量为null