我正在从Dart中的json数据填充数组
String url="http://someapi.com/words";
List<Word> words=new List<Word>();
final res = await http.get(url, headers: {"Accept": "aplication/json"});
final wordsList = json.decode(res.body);
for (var h in wordsList) {
Word word = new Word(title: h['title'].toString());
words.add(word);
}
这给了我单词列表。现在如何在小部件中使用它? 下面是我目前拥有的代码
@override
Widget build(BuildContext context) {
final response=fetchWords(); //this response will have list of words
return new Container(
padding: new EdgeInsets.symmetric(vertical: 15.0,
horizontal: 15.0),
child: Column(children: <Widget>[
new Row(
children: <Widget>[
//I want to add a container for each for words here
],
)
])
);
我尝试遵循this,但不确定如何将json数组转换为小部件
答案 0 :(得分:1)
使用地图功能。
示例:
Row(
children: words.map<Widget>((word)=>Container(child: Text(word))).toList()
);
答案 1 :(得分:1)
只需将map
与toList()
一起使用
Row(
children: words.map((word)=> Text(word)).toList()
);
map
一次只能输入一个单词
=>
是return
的缩写,因此您可能已经写过
Row(
children: words.map((word){
returnText(word)}
).toList()
);
最后,Row
期望有List
个小部件,而map
给出了一个Iterable
,因此我们使用toList()
来获取小部件列表。