title: Flutter Cubit state does not leave the starting point (MyInitialState)
body: <p>I'm learning cubit / bloc but when I have a page that loads information from a json file, my status doesn't change.</p>
  <p>I have no idea what is happening because it does not return any error, but through a print I can follow the current states.
  I also did not find a source of information that uses this way, without the need for a click or something</p>
  <p><strong>my cubit</strong></p>
  <pre><code>   class AgentesCubit extends Cubit&lt;AgentesState&gt; {
        final AgentesRepository _agentesRepository = JsonAgentesRepository();
        AgentesCubit() : super(AgentesInitial());
        List&lt;Agentes&gt; listAgentes;
      
        getAgentes() async {
          try {
            emit(AgentesLoading());
            _agentesRepository.loadAgentes().then((data) =&gt; listAgentes = data);
            print(listAgentes);
            emit(AgentesLoaded(listAgentes));
          } on NetworkError {
            emit(AgentesError('Ocorreu algo inesperado, tente novamente mais tarde'));
          }
        }
      }
      
      class NetworkError {}
  </code></pre>
  <p><strong>my states</strong></p>
  <pre><code>part of 'agentes_cubit.dart';
  
  @immutable
  abstract class AgentesState {
    const AgentesState();
  }
  
  class AgentesInitial extends AgentesState {
    const AgentesInitial();
  }
  
  class AgentesLoading extends AgentesState {
    const AgentesLoading();
  }
  
  class AgentesLoaded extends AgentesState {
    final List&lt;Agentes&gt; agentes;
    const AgentesLoaded(this.agentes);
  
    @override
    bool operator ==(Object o) {
      if (identical(this, o)) return true;
      return o is AgentesLoaded &amp;&amp; o.agentes == agentes;
    }
  
    @override
    int get hashCode =&gt; agentes.hashCode;
  }
  
  class AgentesError extends AgentesState {
    final String message;
    const AgentesError(this.message);
  
    @override
    bool operator ==(Object o) {
      if (identical(this, o)) return true;
  
      return o is AgentesError &amp;&amp; o.message == message;
    }
  
    @override
    int get hashCode =&gt; message.hashCode;
  }
  </code></pre>
  <p><strong>my page</strong></p>
  <pre><code>class AgentesPage extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Container(
            child: BlocBuilder&lt;AgentesCubit, AgentesState&gt;(
          cubit: AgentesCubit(),
          builder: (context, state) {
            if (state is AgentesInitial) {
              print('initial');
              return buildLoading();
            } else if (state is AgentesLoading) {
              print('loading');
              return buildLoading();
            } else if (state is AgentesLoaded) {
              print('loaded');
              return buildAgentesList(state.agentes, context);
            }
            return Container();
          },
        )),
      );
    }
  
    buildLoading() {
      return Center(
        child: CircularProgressIndicator(),
      );
    }
  
    buildAgentesList(agentes, context) {
      print(agentes);
      return Container(
        width: MediaQuery.of(context).size.width,
        child: ListView.builder(
            itemCount: agentes.length,
            itemBuilder: (context, index) =&gt; CustomAgenteItem(agentes[index])),
      );
    }
  
    void loadAgentes(BuildContext context) {
      final agentesCubit = context.bloc&lt;AgentesCubit&gt;();
      agentesCubit.getAgentes();
    }
  }
  </code></pre>
  <p><strong>my agentes item widget</strong></p>
  <pre><code>class CustomAgenteItem extends StatelessWidget {
    final Agentes agente;
    CustomAgenteItem(this.agente);
  
    @override
    Widget build(BuildContext context) {
      return InkWell(
          highlightColor: mainColor,
          splashColor: mainColor,
          onTap: () =&gt; print(''),
          child: Container(
            width: MediaQuery.of(context).size.width,
            child: new ParallaxImage(
              child: Padding(
                padding: const EdgeInsets.only(top: 16.0, left: 16),
                child: Text(
                  agente.nome,
                  style: listAgents,
                ),
              ),
              extent: 100.0,
              image: new AssetImage(
                'assets/images/bg.jpg',
              ),
            ),
          ));
    }
  }
  </code></pre>
  <p><strong>my repository</strong></p>
  <pre><code>class AgentesRepository {
    loadAgentes() async {
      return agentesFromJson(
          await rootBundle.loadString('assets/infos/agentes.json'));
    }
  }
  </code></pre>