如何解决如何在列表中打印响应数据?
我试图在列表构建器中列出来自 response.data 的数据,但我无法解析我从响应中获得的数据。 这是我想要使用的代码:
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
Future getIds() async {
var response = await Dio().get(
'https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty');
return response.data;
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
List ids = getIds();
@override
Widget build(BuildContext context) {
getIds();
return ListView.builder(
itemCount: ids.length,itemBuilder: null);
}
}
我如何使用 dio 来做到这一点?
解决方法
您不能使用无状态小部件来显示来自 API 的数据。你必须使用有状态的小部件,并在项目构建器中返回一个小部件
itemBuilder:(BuildContext context,int index) {
return Text("${ids[index]["yourKey"]}")
}
并在init状态中添加函数
List ids;
@override
void initState() {
TODO: implement initState
super.initState();
ids = getIds();
}
,有一些解决方案。
-
FutureBuilder
FutureBuilder( future: getIds(),builder: (context,snapshot) { if (snapshot.hasData) { List<Map<String,dynamic>> ids = snapshot.data; return ListView.builder( itemCount: ids.length,itemBuilder:(BuildContext context,int index) { return Text("${ids[index]["yourKey"]}") }); } else if (snapshot.hasError) { return snapshot.error; } else { return Center( child: CircularProgressIndicator(),); } })
-
StatefulWidget
setState(() { ids = dataList; });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。