2017-10-26 3 views
1

Ich versuche einen groben Klon von Reddit zu erzeugen, indem ich flattern, um mir beim Lernen zu helfen, aber ich bleibe stecken, wo meine for-Schleife nicht aufgerufen wird, bei der Initialisierung. Der Teil meines Codes, in dem es nicht hier ist:Flutter for loop wird nicht aufgerufen

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); 
    } 
    } 

Die for-Schleife wird nicht aufgerufen werden und damit die Container-Liste wird bevölkert nicht werden. Wenn ich posts.length kurz vor der Schleife drucke, erhalte ich eine Ausgabe von 25, aber dasselbe in der Schleife zu tun, gibt nichts zurück.

Antwort

4

Verwenden Sie for (var i = 0; i < posts.length; i++) statt for (var i = 0; i == posts.length; i++).

Wie Sie nicht wirklich i verwenden, können Sie für-in oder Listen Transformation verwenden:

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

Im so ein Idiot, Dank – Wrumble