【发布时间】:2021-08-22 05:24:02
【问题描述】:
我是 Flutter 的新手,我正在尝试在未来的构建器中调用 listview 构建器中的 api 数据。但我在快照中得到空数据。
我的代码如下:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
String token;
SharedPreferences sharedPreferences;
class ContinueW extends StatefulWidget {
@override
_ContinueWState createState() => _ContinueWState();
}
class _ContinueWState extends State<ContinueW> {
Future getTokenValue() async {
SharedPreferences espf = await SharedPreferences.getInstance();
token = espf.getString('tokenvalue');
return token;
}
Future createUser() async {
String url ='http://3.137.182.252:8000/continue-watching';
print('token');
Map<String, String> headers = {
'token': token,
};
await http.get(url, headers: headers).then((response){
print('Entered');
//print(response.body);
var jre= jsonDecode(response.body);
return jre;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: FutureBuilder(
future: getTokenValue(),
builder: (BuildContext context,snapshot){
if(snapshot.hasData){
return cbuild();
} else{
return CircularProgressIndicator();
}
},
),
),
);
}
Widget cbuild(){
return new FutureBuilder(
future: createUser(),
builder: (BuildContext context,snapshot) {
if(snapshot.hasData) {
return ListView.builder(
itemBuilder: (context, index) {
return ListTile(
leading: CircleAvatar(
backgroundImage: snapshot.data['thumburl'] != null
? NetworkImage(snapshot.data['thumburl'])
: Container(),),
title: Text(snapshot.data[index]['name']),
subtitle: Text(snapshot.data[index]['description']),
);
},
);
}
else{
return CircularProgressIndicator();
}
}
);
}
}
【问题讨论】: