当我在我的应用程序中调用 API 时,它会向我显示数据作为响应,但在未来的构建器中,它无法向我显示数据
Posted
技术标签:
【中文标题】当我在我的应用程序中调用 API 时,它会向我显示数据作为响应,但在未来的构建器中,它无法向我显示数据【英文标题】:When I call API in my app its shows me data as a response but in future builder, it can not show me data 【发布时间】:2021-08-04 20:14:56 【问题描述】:。
Future getMatchDataHome() async
List<TeamData> userdata= [];
try
http.Response response =
await http.post(Uri.parse('https://localhost:2085/api/data.json'), body:
'user_id': '2',
);
for (var tp in json.decode(response.body)['list'])
TeamData teamData = TeamData(
id: '$tp['id']',
createrName: '$tp['creator_name']',
);
userdata.add(teamData);
return userdata;
catch (e)
print(e);
@override
Widget build(BuildContext context)
return Container(
child: FutureBuilder(
future: getMatchDataHome(),
builder: (context, snapshot)
print(snapshot.data);
if (snapshot.data == null)
return ProgressbarCustome() ;
else
return ListView.builder(
itemCount:
snapshot.data.length,
itemBuilder: (context, index)
var snap = snapshot.data[index];
return ListTile(
title: Text('$snap.id'),
trailing: Text('$snap.createrName'),
);
);
,
),
);
颤振医生
[√] Flutter (Channel stable, 2.0.6, on Microsoft Windows [Version 10.0.21359.1], locale en-IN)
[√] android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3)
[√] Chrome - 为网络开发
[√] Visual Studio - 为 Windows 开发(Visual Studio Community 2019 16.9.3)
[√]Android Studio(4.1.0版)
[√] VS 代码(版本 1.56.1)
[√] 已连接设备(4 个可用)
• 未发现任何问题!
【问题讨论】:
【参考方案1】:将for-loop
更改为:
await Future.wait(json.decode(response.body)['list'].map((input) async
TeamData teamData = TeamData(
id: '$tp['id']',
createrName: '$tp['creator_name']',
);
userdata.add(teamData);
));
return userdata;
【讨论】:
【参考方案2】:尝试为你的未来定义一个返回类型:
Future<List<TeamData>> getMatchDataHome() async
...
您的 FutureBuilder 很可能不知道返回类型,因此它不知道 snapshot.data
的类型为 List<TeamData>
。此外,将此类型添加到 FutureBuilder 本身,例如 FutureBuilder<List<TeamData>>(...)
。
【讨论】:
以上是关于当我在我的应用程序中调用 API 时,它会向我显示数据作为响应,但在未来的构建器中,它无法向我显示数据的主要内容,如果未能解决你的问题,请参考以下文章
我想在我的 React Native 应用程序中的谷歌地图中显示附近的餐馆。当我调用 Google API 附近搜索时,它会抛出状态:'ZERO_RESULTS'
当我将我的 laravel 项目放入 xampp 时,我的登录不起作用