Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

A parte da lista de transferências precisa ser atualizada com setState()

Apenas vou ser aquele cara que vai criar mais um tópico aqui pedindo para que atualizem o material a respeito do "bug" do setState() na lista de transferências. Conceitualmente a primeira implementação está errada, então creio que desde o inicio não deveria ser explicado da forma que foi.

Pela natureza do problema, a solução original não deve funcionar na máquina de ninguém que tenha um pc um pouco mais lento como o meu, já que se trata de um problema de sincronia. O próprio instrutor diz que estava funcionando "na sorte", mas nem todo mundo tem sorte. :P Não há como garantir que isso vá funcionar na máquina de quem está seguindo o curso, o problema não ia ocorrer se o emulador rodasse mais rápido aqui ou talvez se tivesse testando o app no celular direto.

Dificilmente alguém vai pular para a próxima lição sem ter feito antes a coisa funcionar primeiro, para então descobrir que a solução do problema está lá na frente. Neste processo a gente perde tempo e foco tentando descobrir porque não está funcionando, e aí vem mais um aqui reclamar que a lista não funciona.

E eu to vindo aqui ser esse cara chato porque metade das perguntas na primeira página dessa lição são sobre esse mesmo erro, ou seja, é necessário.

3 respostas
solução!

Opa Danilo, tudo bem?

Fiz a atualização da atividade (adicionei uma nota indicando o possível problema) e agradeço por compartilhar a sua experiência conosco, ela é muito importante para que a gente melhore cada vez mais o nosso conteúdo.

Sobre o problema da atualização, já que não é algo natural de simular, optei por encerrar o vídeo e discutir todos os possíveis problemas com a implementação que foi feita durante o curso no vídeo seguinte.

O processo de criação de software normalmente é assim, começamos com um código que a princípio funciona (teste simples como fizemos), então testamos e simulamos mais situações e identificamos os problemas (assim como foi aplicar o delay no video seguinte)... Só depois de identificar os possíveis problemas que discutimos e demonstramos a solução.

Para quem está começando e não consegue identificar os possíveis problemas apenas na teoria, essa demonstração ajuda a esclarecer e identificar as situações similares que acontecerem no dia a dia (implementações que parecem funcionar, mas na verdade pode ser apenas sorte). Existem outras técnicas para auxiliar nisso, como testes automatizados, mas, novamente, para quem está começando é sempre importante exercitar e ter noção das possibilidades.

Resumindo, eu corcondo com o seu ponto de vista sobre deixar claro o possível problema para não perder tempo (por isso já ajustei a atividade), não é o nosso objetivo entregar essa experiência para as pessoas :)

Mas, é importante também refletir que ao aprender algo novo, tem bastante vantagem em conhecer as possibilidades para saber como lidar com cada uma delas.

E você não está sendo chato de forma alguma, tópicos como o seu é muito importante tanto para quem consome ou cria conteúdo, permite que a gente melhore a Alura juntos, mais uma vez obrigado ;)

[]s

Concordo com todo o teu ponto a respeito de passar por problemas para então aprender de fato, e não vejo problemas nisso. Eu entendo perfeitamente o fato de você usar um "atalho" ou, falando de forma melhor, um "caminho alternativo" pra ajudar a introduzir um conceito que para um iniciante não vá ser muito simples de entender sem antes ver o problema acontecendo. O problema é que o problema as vezes acontece antes da hora. :P

Ter uma nota no material avisando sobre o possível erro já soa suficiente pra mim. Meu choro era mais sobre ver vários tópicos no fórum da atividade sobre o mesmo problema serem respondidos desde o ano passado e a atualização ainda não ter sido feita. Então meu choro funcionou. :P

Novamente, obrigado pela resposta e fico feliz por estarem abertos ao feedback.

Fiquei revisando o código várias vezes até desistir e ir para a próxima aula! hahaha!!