在Flutter Dart

时间:2019-05-07 16:17:18

标签: dart flutter

我正在从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数组转换为小部件

2 个答案:

答案 0 :(得分:1)

使用地图功能。

示例:

Row(
  children: words.map<Widget>((word)=>Container(child: Text(word))).toList()
);

答案 1 :(得分:1)

只需将maptoList()一起使用

Row(
  children: words.map((word)=> Text(word)).toList()
);

map一次只能输入一个单词

=>return的缩写,因此您可能已经写过

Row(
   children: words.map((word){
                returnText(word)}
                ).toList()
  );

最后,Row期望有List个小部件,而map给出了一个Iterable,因此我们使用toList()来获取小部件列表。