【发布时间】:2021-07-29 02:44:05
【问题描述】:
我正在使用http:^0.13.3,
这是我的简单代码,当我运行此代码时出现错误:“预期类型为 'Map
class SubCategoryObject {
final int id;
final String category;
SubCategoryObject({@required this.id, @required this.category});
factory SubCategoryObject.fromJson(Map<String, dynamic> json) {
return SubCategoryObject(
id: json['id'],
category: json['title'],
);
}
}
class SubCategoryListScreen extends StatelessWidget {
static const route = 'sub-category-list';
SubCategoryListScreen({Key key}) : super(key: key);
Future<SubCategoryObject> getData() async {
final res =
await http.get(Uri.https("jsonplaceholder.typicode.com", "todos"));
if (res.statusCode == 200) {
return SubCategoryObject.fromJson(jsonDecode(res.body));
} else {
// If that call was not successful, throw an error.
throw Exception('Failed to load ');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("martman"),
),
body: FutureBuilder<SubCategoryObject>(
future: getData(),
builder: (ctx, snapshot) {
// Checking if future is resolved or not
if (snapshot.connectionState == ConnectionState.done) {
// If we got an error
if (snapshot.hasError) {
return Center(
child: Text(
'${snapshot.error} occured',
style: TextStyle(fontSize: 18),
),
);
// if we got our data
} else if (snapshot.hasData) {
return Text(snapshot.data.category);
}
}
// Displaying LoadingSpinner to indicate waiting state
return Center(
child: CircularProgressIndicator(),
);
},
),
);
}
}
【问题讨论】:
-
打印并分享您从 api 获取的数据的屏幕截图。我相信这是一个列表而不是地图。