title: unable to update state after async call
body: <p>So am having a scroll listener where am calling the function to get data but after getting data i need to hot restart to see changes. and is it like that set state rebuilds the main widget but not any sub widget like i made a widget xyz which is of container type and placed this in main widget so will it rebuild xyz also?</p>
  <p><strong>listener:-</strong></p>
  <pre><code>void _scrollListener()async{
      if (!loading&amp;&amp;!load) {
        if (scrollController.position.pixels == scrollController.position.maxScrollExtent) {
          setState(() =&gt; load = true);
          await clearEmptyDocs();
          getMoreData();
        }
      }
    }
  </code></pre>
  <p><strong>function:-</strong></p>
  <pre><code>getMoreData()async
    {
      var quicks;
      var posts;
      if(publicPostsDocuments.isNotEmpty)
        {
          print('1\n\n\n\n');
          posts=await getPublicPosts();
        }
      else
        {
          print('2\n\n\n\n');
          posts=await getPublicDocuments();
        }
      if(publicQuicksDocuments.isNotEmpty)
      {
        print('3\n\n\n\n');
        quicks=await getPublicQuicks();
      }
      else
      {
        print('4\n\n\n\n');
        quicks=await getPublicDocumentsForQuicks();
      }
      List&lt;GridTile&gt; newGridTile=[];
      posts.forEach((eachPost) {newGridTile.add(GridTile(
        child: ClipRRect(
            borderRadius: BorderRadius.circular(10),
            child: PostTile(eachPost,posts: postList,)
        ),
      ));});
      quicks.forEach((eachPost) {newGridTile.add(GridTile(
        child: ClipRRect(
          borderRadius: BorderRadius.circular(10),
          child: PostTile(eachPost,posts: quicksList,isFromSearch: true,),
        ),
      ));});
      newGridTile.shuffle();
      gridTile.addAll(newGridTile); //am using this gridtile list to show elements
      setState(() {
        load=false;
      });
    }
  </code></pre>