3
respostas

Chamando GET duas vezes

Em minha aplicação está correndo tudo normal, porem quando volto para a pagina inicial o app chama novamente um get e popula a pagina inicial com os items novamente, gerando uma repetição de item, alguma dica de como resolver?Eu fiz a minha propria API e não estou usando a do curso, pois estava fazendo curso de web do mesmo professor.

3 respostas

Oi Guilherme, tudo bem? Você está usando MessagingCenter? Se estiver, é preciso para fazer assinatura mas também tomar cuidado para cancelar a assinatura do evento, para não haver múltiplos objetos em memória enviando requisições GET.

Sim, eu fiz isso

protected override void OnDisappearing() { base.OnDisappearing(); MessagingCenter.Unsubscribe<Veiculo>(this, "VeiculoSelecionado"); }

Quando volto para pagina inicial ele repopula mesmo assim, mas se eu escolher o mesmo item que cliquei antes ele apenas não me deixa seguir adiante, o que mostra que esta funcionando.

Gostaria de testar o codigo da aula porem não consigo fazer rodar :(

Acabei usando a boa e velha gambiarra do if com um bool para impedir o metodo ser chamado, se alguém souber o que estou fazendo de errado por favor me fale.

´ bool teste; protected async override void OnAppearing() {

        base.OnAppearing();
        MessagingCenter.Subscribe<Veiculo>(this, "VeiculoSelecionado", (msg) => {

            Navigation.PushAsync(new DetalheView(msg));
        } );
        if (teste == false)
        {
            await this.view.GetVeiculo();
            teste = true;
        }

    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        MessagingCenter.Unsubscribe<Veiculo>(this, "VeiculoSelecionado");

    }