2017-10-26 19 views
1

私は学習に役立つフラッターを使ってRedditの大まかなクローンを作成しようとしていますが、私のforループが呼び出されていない場所で初期化されています。それが失敗した私のコードの一部ここにある:Flutter forループが呼び出されていません

class RedditTable extends StatelessWidget { 
    List posts; 
    List containers; 
    RedditTable(List posts) { 
    this.posts = posts; 
    this.containers = new List<Container>(); 

    for (var i = 0; i == posts.length; i++) { 
     var post = posts[i]["data"]; 
     var title = post["title"]; 
     var container = new Container(
      margin: new EdgeInsets.symmetric(horizontal: 4.0), 
      child: new Text(title) 
    ); 
     containers.add(container); 
    } 
    } 

ザ・ループのために呼び出されていないので、コンテナリストが移入されていません。ループの直前にposts.lengthを印刷すると、出力は25になりますが、ループ内で同じことを行うと何も返されません。

答えて

4

for (var i = 0; i == posts.length; i++)の代わりにfor (var i = 0; i < posts.length; i++)を使用してください。

for (var post in posts) { 
     var title = post["data"]["title"]; 
     var container = new Container(
     margin: new EdgeInsets.symmetric(horizontal: 4.0), 
     child: new Text(title), 
    ); 
     containers.add(container); 
    } 

    // or 

    containers = posts.map((post) => new Container(
     margin: new EdgeInsets.symmetric(horizontal: 4.0), 
     child: new Text(post["data"]["title"]), 
    )).toList(); 
+0

イムな馬鹿、感謝:あなたは本当にiを使用していないとして

あなたはインまたはリストの変換を使用することができます – Wrumble

関連する問題