title: Flutter Bloc: BlocBuilder not getting called after an update, ListView still displays old data
body: <p>I'm using flutter_bloc for state management and landed on this issue. When updating a field and saving it, the BlocBuilder is not refreshing the page. It is working fine when Adding or Deleting. I'm not sure what I'm doing wrong here. </p>
  
  <p>Even if I go to a different screen and returning to this screen it still displays the old data even though the file was updated.</p>
  
  <p>I spent more than 2 hours trying to debug this to no avail. I tried initializing the <code>updatedTodos = []</code> then adding each todo one by one, to see if that does something, but that didn't work either. </p>
  
  <p>Any help here would be appreciated.</p>
  
  <p>TodosBloc.dart:</p>
  
  <pre><code>Stream&lt;TodosState&gt; _mapUpdateTodoToState(
      TodosLoaded currentState,
      UpdateTodo event,
    ) async* {     
          if (currentState is TodosLoaded) {
          final index = currentState.Todos
              .indexWhere((todo) =&gt; event.todo.id == todo.id);
          final List&lt;TodoModel&gt; updatedTodos =
              List.from(currentState.todos)
                ..removeAt(index)
                ..insert(index, event.todo);
  
          yield TodosLoaded(updatedTodos);
          _saveTodos(updatedTodos);
        }
    }
  </code></pre>
  
  <p>todos_screen.dart:</p>
  
  <pre><code>...
  Widget build(BuildContext context) {
      return BlocBuilder(
        bloc: _todosBloc,
        builder: (BuildContext context, TodosState state) {
          List&lt;TodoModel&gt; todos = const [];
          String _strings = "";
          if (state is TodosLoaded) {
            todos = state.todos;
          }
          return Expanded(
            child: ListView.builder(
              itemCount: todos.length,
              itemBuilder: (BuildContext ctnx, int index) {
                return Dismissible(
                  key: Key(todo.toString()),
                  child: DetailCard(
                    todo: todos[index],
                  ),
                );
              },
            ),
          );
  ...
  </code></pre>
  
  <p>I'm expecting when the BlocBuilder to be called and refreshed the ListView.</p>