颤振错误:需要一个“String”类型的值,但得到一个“int”类型的值
Posted
技术标签:
【中文标题】颤振错误:需要一个“String”类型的值,但得到一个“int”类型的值【英文标题】:Flutter Error: Expected a value of type 'String', but got one of type 'int' 【发布时间】:2021-09-13 13:45:27 【问题描述】:这是我的 userdata.dart
class UserData
late String name;
late String age;
UserData(
this.name = "",
this.age = "",
);
factory UserData.fromJson(Map<String, dynamic> parsedJson)
return new UserData(
name: parsedJson['Name'],
age: parsedJson['Age'],
);
provider.dart:
Future getPatient(
String uId, BuildContext context) async
uId = '60aa563cb2bd01aaeb5a94ac';
http.Response user =
await http.get(Uri.https("link.com", "getUser/$uId"));
var userJson = jsonDecode(user.body);
print("Patient data: $userJson"); /// code works till here as it prints
UserData users = new UserData.fromJson(userJson);
print("Patient Name $users.name[0]");
return patients;
用户模型
_id: $oid: 60aa563cb2bd01aaeb5a9sdfs, Email: xyz@gmail.com, Name: pqr, Age: 20, Gender: Male, Phone: 23478917883
我想检索每个 id(用户的姓名和年龄)的数据。当我尝试检索数据时,我遇到了这个错误。
Error: Expected a value of type 'String', but got one of type 'int'
我是 Flutter 和 *** 的新手。能否请您帮我说明问题是什么以及如何解决?
【问题讨论】:
使用年龄作为整数而不是字符串 【参考方案1】:此错误意味着您正在解析的字段之一是 int
,但您正在将其初始化为 String
类型的变量
在您的数据中年龄和电话是int
因此,在您的模型类中进行以下更改
class UserData
String? name;
int? age; //change this to int from String
UserData(
@required this.name,
@required this.age,
);
factory UserData.fromJson(Map<String, dynamic> parsedJson)
return new UserData(
name: parsedJson['Name'],
age: parsedJson['Age'],
);
【讨论】:
我确实改变了它,但我们不能分配this.age = ""
,因为我们为字符串分配,并且由于 null safety 我需要在 this.age 之前添加 required。但是这样做会给我这个错误Error: Expected a value of type 'String', but got one of type 'Null'
。
@InfiniteLearner 我的错,我完全忽略了初始化部分。尝试编辑的代码;它应该工作!以上是关于颤振错误:需要一个“String”类型的值,但得到一个“int”类型的值的主要内容,如果未能解决你的问题,请参考以下文章
需要一个“String”类型的值,但得到一个“Null”类型的值
如何使用 StreamBuilder 消除颤振数据表错误“预期类型为 'List<DataRow>',但得到类型为 'List<dynamic>”的值之一?
错误:需要一个“String”类型的值,但在新的 note.Note.fromJson 中得到一个“Null”类型的值
需要一个 'String' 类型的值,但得到一个 'Null' 类型的值。这是一个电子商务应用程序
Flutter 'showDatePicker' 抛出异常:错误:预期值为 'String' 类型,但得到类型为 'Null' 的值之一