【发布时间】:2021-06-21 00:20:39
【问题描述】:
我尝试使用 FutureBuilder 在 Flutter 的 ListView 中显示 JSON 的结果。当我检查这样的数据时我得到了这个结果
但是当我检查这样的数据时,inspect(snapshot.data['name]);我没有收到任何结果。
我想从 api 获取数据并显示在 listview 中
有什么帮助吗?
我的代码:
@override
void initState() {
getproduct(widget.idproduct);
super.initState();
}
Future<dynamic> getproduct(int id) async {
var response = await Network().getData('/publication/show/$id');
var data = json.decode(response.body)['publication'];
return data;
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
brightness: Brightness.light,
backgroundColor: Colors.transparent,
elevation: 0,
leading: GestureDetector(
onTap: () {
Navigator.pop(context);
},
child: Icon(
Icons.arrow_back,
color: Colors.grey[800],
),
),
),
body: Container(
padding: EdgeInsets.only(left: 16, top: 1, right: 16),
child: Container(
child: FutureBuilder(
future: getproduct(widget.idproduct),
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
inspect(snapshot.data);
return ListView.builder(
itemBuilder: (BuildContext context, index) {
String price = snapshot.data[index]['price'];
String size = snapshot.data[index]['size'];
int id = int.parse('${snapshot.data[index]['user_id']}');
Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 10.0,
),
Text(
"$size",
style: TextStyle(
fontSize: 22.0,
color: Colors.grey,
),
),
【问题讨论】: