无法将参数类型 'String?' 分配给参数类型 'String',因为 'String?' 可以为空且 'String' 不在文本小部件中
The argument type 'String?' can't be assigned to the parameter type 'String' because 'String?' is nullable and 'String' isn't in Text widget
当他使用 Getx 登录个人资料屏幕时,我试图显示此人的姓名和电子邮件
Column(
children: [
Text(
controller.userModel!.name,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
Text(
controller.userModel!.email,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
],
),
],
但此错误一直显示 Error in vs code
和 Error in terminal
姓名和邮箱的相关代码是
class UserModel {
late String? userId, email, name, pic;
UserModel({
required this.userId,
required this.email,
required this.name,
required this.pic,
});
UserModel.fromJson(Map<dynamic, dynamic> map) {
userId = map['userId'];
email = map['email'];
name = map['name'];
pic = map['pic'];
}
toJson() {
return {
'userId': userId,
'email': email,
'name': name,
'pic': pic,
};
}
}
我尝试添加 .toString() 和 as String 但调试后错误仍然显示
Column(
children: [
Text(
controller.userModel!.name!,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
Text(
controller.userModel!.email!,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
],
),
],
我添加了'!'性格,应该可以。
在您的模型中, late String? userId, email, name, pic;
和@Salih Can 的回答将有效。
这里,String?
表示字符串可以接受空值。但是 Text
小部件不接受空值。您需要使用 bang 运算符 !
来处理它,并且通过添加 !
意味着该值不再为空。更好的做法是检查它是否为 null,然后在 Text
上分配。可以是
Text(myVal==null? "defalut value": myVal)
Text(myVal??"default Value")
if(myval!=null) Text(myVal)
并且仅当字符串不为空时才会呈现。
当他使用 Getx 登录个人资料屏幕时,我试图显示此人的姓名和电子邮件
Column(
children: [
Text(
controller.userModel!.name,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
Text(
controller.userModel!.email,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
],
),
],
但此错误一直显示 Error in vs code 和 Error in terminal
姓名和邮箱的相关代码是
class UserModel {
late String? userId, email, name, pic;
UserModel({
required this.userId,
required this.email,
required this.name,
required this.pic,
});
UserModel.fromJson(Map<dynamic, dynamic> map) {
userId = map['userId'];
email = map['email'];
name = map['name'];
pic = map['pic'];
}
toJson() {
return {
'userId': userId,
'email': email,
'name': name,
'pic': pic,
};
}
}
我尝试添加 .toString() 和 as String 但调试后错误仍然显示
Column(
children: [
Text(
controller.userModel!.name!,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
Text(
controller.userModel!.email!,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Kprimarycolor,
),
),
],
),
],
我添加了'!'性格,应该可以。
在您的模型中, late String? userId, email, name, pic;
和@Salih Can 的回答将有效。
这里,String?
表示字符串可以接受空值。但是 Text
小部件不接受空值。您需要使用 bang 运算符 !
来处理它,并且通过添加 !
意味着该值不再为空。更好的做法是检查它是否为 null,然后在 Text
上分配。可以是
Text(myVal==null? "defalut value": myVal)
Text(myVal??"default Value")
if(myval!=null) Text(myVal)
并且仅当字符串不为空时才会呈现。