List 如何在列表中打印响应数据?
我试图在列表生成器中列出response.data中的数据,但无法解析从响应中获取的数据。 以下是我要使用的代码:List 如何在列表中打印响应数据?,list,flutter,http,dio,List,Flutter,Http,Dio,我试图在列表生成器中列出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?p
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中的数据。您必须使用statefull小部件,并在ItemBuilder中返回一个小部件
itemBuilder:(BuildContext context, int index) {
return Text("${ids[index]["yourKey"]}")
}
并在init state中添加函数
List ids;
@override
void initState() {
TODO: implement initState
super.initState();
ids = getIds();
}有一些解决方案
- 未来建设者
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(), ); } })
setState(() {
ids = dataList;
});