title: UI doesn't fully update when receive bloc informations
body: <p>I have this weird problem: I want to update a grid of items when I click on it. I use a BLoC pattern to manage the changement so the view just receive a list and have to display it. My problem is that the view doesn't fully update. </p>
  
  <p>Before I go further in the explanation, here my code </p>
  
  <pre><code>body: BlocEventStateBuilder&lt;ShopEvent, ShopState&gt;(
    bloc: bloc,
    builder: (BuildContext context, ShopState state) {
      staggeredTile.clear();
      cards.clear();
  
      staggeredTile.add(StaggeredTile.count(4, 0.1));
      cards.add(Container());
  
      if (state.products != null) {
        state.products.forEach((item) {
          staggeredTile.add(StaggeredTile.count(2, 2));
          cards.add(
            Card(
              child: InkWell(
                child: Column(
                  children: &lt;Widget&gt;[
                    Image.network(
                      item.picture,
                      height: 140,
                    ),
                    Container(margin: EdgeInsets.only(top: 8.0)),
                    Text(item.title)
                  ],
                ),
                onTap: () {
                  bloc.emitEvent(ClickShopEvent(item.id));
                },
              ),
            ),
          );
      });
    }
    return StaggeredGridView.count(
      crossAxisCount: 4,
      staggeredTiles: staggeredTile,
      children: cards,
    );
  }),
  </code></pre>
  
  <p>So, I have two items. When I click on the first one, I'm suppose to have one item with a different name and picture. But when I click, I have one item as expected, but with the same text and image. When I print thoses values, it's correctly updated but the view doesn't show it.</p>
  
  <p>Do you have any clues of my problem?</p>