2017-10-26 6 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