我知道我在这里遗漏了一些非常基本的东西,但是我试图使用一些json来创建一系列的卡片。我对编码非常陌生,还不了解类构造函数的创建以及json在其上的应用。我可以收到响应,并通过打印到控制台可以看到我可以解析json,但是将其作为文本显示在卡上是我遇到问题的地方。在将json应用于类时,我们将获得任何帮助,我计划使用列表视图填充卡片详细信息。
这是api调用和小部件构建的代码:
import 'package:flutter/material.dart';
import './views.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
class BodyText extends StatelessWidget {
final List<ViewObject> fetcheddata = [];
@override
Widget build(BuildContext context) {
testapi();
return ListView.builder(
itemCount: fetcheddata.length,
itemBuilder: cardBuilder,
);
}
Widget cardBuilder(BuildContext context, int index) {
return Card(
child: Text(thisobject.brandname), etc etc
);
}
void testapi() async {
http
.get('urlgoeshere')
.then((http.Response response) {
final Map<String, dynamic> viewslistdata = json.decode(response.body);
viewslistdata.forEach((String view, dynamic viewdata) {
ViewObject thisobject = ViewObject(
brandName: viewdata['brandname'],
appName: viewdata['appname'],
views: viewdata['Views']);
fetcheddata.add(thisobject);
});
});
}
}
这是类的构造函数
import 'package:flutter/material.dart';
class ViewObject {
final String appName;
final String brandName;
final int views;
ViewObject(
{@required this.appName , @required this.brandName, @required this.views});
}
您可以告诉我,我是编码的新手,尤其是飞镖/颤振,对于不好的代码,我深表歉意。我已经找到了答案,但找不到任何可以完全帮助的东西。
答案 0 :(得分:0)
您需要将StatelessWidget
转换为StatefulWidget
,然后在setState
上致电fetcheddata.add(thisobject)
setState((){
fetcheddata.add(thisobject);
})