【发布时间】:2019-11-10 00:58:54
【问题描述】:
这是我的模特
` class Sale {
final dynamic next;
final dynamic previous;
final int count;
final List<Results> results;
Sale({this.next, this.previous, this.count, this.results});
factory Sale.fromJson(Map<String, dynamic> json) {
return Sale(
next: json['next'],
previous: json['previous'],
count: json['count'],
results: parsedResult(json),
);
}
static List<Results> parsedResult(resultJson) {
var list = resultJson['results'] as List;
List<Results> resultList =
list.map((data) => Results.fromJson(data)).toList();
return resultList;
}
}
class Results {
final int id;
final String cname;
Results(
{this.id,
this.cname,
});
factory Results.fromJson(Map<String, dynamic> json) {
return Results(
id: json['id'],
cname: json['cname'],
);
}
}
`
这里一切正常
` Future<Sale> getData() async{
final prefs = await SharedPreferences.getInstance();
final k = "key";
final v = prefs.get(k) ?? 0;
var response = await http.get("$saleUrl/?format=json",
headers: {'Accept': 'application/json', 'Authorization': 'Token $v'
},
);
var data = json.decode(utf8.decode(response.bodyBytes));
Sale sale = new Sale.fromJson(data);
print("Result: ${sale.results}");
print("lno : ${sale.results[0].lnochar} ${sale.results[0].lnoint}");
print("customer name:${sale.results[0].cname}");
print("reseller name:${sale.results[0].cname}");
return sale;
}
`
但我想使用未来的构建器将此数据添加到 dataTable 小部件 这是我未来的建设者功能
` FutureBuilder(
future: apiService.getData(),
builder: (BuildContext context,AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return body(snapshot.data);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
}
),
this is dataTable widget
小部件主体(地图数据){
打印(数据['结果']);
返回 SingleChildScrollView(
滚动方向:Axis.horizontal,
孩子:容器(
孩子:数据表(
columns: <DataColumn>[
DataColumn(
label: Text('Customer name'),
),
DataColumn(
label: Text('Customer adress'),
),
DataColumn(
label: Text('Edit || Delete', style: TextStyle(fontSize: 18),),
),
],
rows: <DataRow>[
DataRow(
cells: [
DataCell(Text(data['cname'])),
DataCell(Text(data['cadress'])),
Dat
DataCell(Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
IconButton(icon: Icon(Icons.edit),
color: Colors.yellow,
onPressed: () {},),
IconButton(icon: Icon(Icons.delete), color: Colors.red
, onPressed: ()=> apiService.deleteData(data['id']),)
],
)),
],
),
],
),
),
);
}
}
`
我不知道如何在表格行中调用已解析的 json 数据
【问题讨论】:
-
我编辑了我的帖子以了解我实际面临的问题。
标签: flutter