Aula 35
Ajeitamos o Bug que Tínhamos Encontrado no PostNew
Summary
Resumo do Vídeo sobre Resolução de Bugs no ActionCreatorC
Neste vídeo, o apresentador aborda um bug encontrado em vídeos anteriores relacionados ao ActionCreatorC
, onde a resposta de operações não estava sendo exibida corretamente após a mudança de cena. O problema ocorre não apenas com a operação de delete, mas também ao criar novos posts.
Demonstração do Bug
- O apresentador tenta criar um novo post, mas a resposta não aparece após clicar em "OK".
- Para ilustrar o problema, ele usa
setTimeout
para simular atrasos, mostrando que a resposta não chega a ser atualizada antes da mudança de cena.
Resolução do Bug
Para corrigir o problema, o apresentador aponta que é necessário lidar com a ação create post
no post reducer
. Aqui estão os passos tomados:
-
Adicionar Caso para
create post
no Reducer:- Um novo caso para
create post
é adicionado ao reducer.
- Um novo caso para
-
Imutabilidade do Estado:
- O estado anterior é retornado e um novo array é criado usando
concat
para adicionar o novo post. - O uso de
push
é evitado, já que modifica o estado original. O princípio de programação funcional é seguido, criando novos objetos.
- O estado anterior é retornado e um novo array é criado usando
-
Usar o Payload da Ação:
- O
action.payload.data
é usado para obter o novo objeto criado e concatená-lo à lista.
- O
Teste da Solução
Após implementar a correção, o apresentador testa a funcionalidade novamente:
- Ele cria um novo post e verifica que, após alguns segundos, a nova entrada aparece corretamente, confirmando que o bug foi resolvido.
Conclusão
O vídeo termina convidando os espectadores a comentarem caso encontrem mais bugs no projeto, e agradecendo pela atenção.
Até a próxima!
Video Transcript
Neste vídeo nós vamos resolver o problema, aquele bug que a gente encontrou nos vídeos
anteriores do ActionCreatorC, da resposta só via depois de mudar a cena.
Tá bom, então isso também acontece, não só com o delete que a gente viu aqui com o
delete, tá, mas do novo, que a gente nem toquei antes.
Então vamos criar um novo aqui.
Neste caso funcionou, mas às vezes não funciona, porque?
Porque o quê? Vamos lá.
No post new, né?
Vai post new aqui.
Quando você dá o on ok press, às vezes a resposta desse cara aqui vem depois de mudar de cena.
Para ilustrar isso, vou botar o set time out novamente da mesma maneira que eu fiz antes.
Certo?
Dê pra esse cara.
Depois de três segundos.
Opa!
Certo, para ilustrar esse erro.
Esse bug.
Não nem erro, um bug, né?
Vamos aqui.
Criar um novo.
Oi, não vem.
Clica ok.
1, 2, 3, nada aconteceu.
Eu vou atualizar o aplicativo para você ver que tá lá mesmo, mas não atualizou antes.
Então vamos consertar esse bug da mesma maneira que a gente fez o delete.
Então como é que a gente vai fazer?
Vamos lá para o reducer, né?
A gente tá emitindo a ação chamada create post.
Vamos para o post reducer, né?
Cadê o create post aqui?
A gente não tá lidando com o create post, né?
Então como a gente vai resolver isso?
A gente vai adicionar o novo item a o all lá em cima.
Se lembra do all?
Então vamos lá.
Vamos aqui.
Vou adicionar o caso.
Create post.
Vou adicionar o bloco aqui porque eu vou usar um variável.
Vou retornar o estado anterior e o all vai ser o quê?
Vamos fazer um variável all, state.all.
Vamos pegar os caras do all e adicionar mais um.
Como é que a gente adiciona?
A gente pode dar o push, mas a gente não quer mudar o estado, tá bom?
Não podemos mudar.
A gente tem que criar uma nova lista sempre, né?
A gente quer fazer que usar o princípio de functional program e programação funcional.
Sempre criando novos objetos, novos, nunca modificando o original.
Como a gente pode fazer isso?
Esse aqui é uma lista.
A gente pode usar várias maneiras.
O maneiro que você vai fazer é usando o concat.
Se eu vou terminar o node aqui, suponha que a gente tenha essa lista aqui e aqui adicionar o novo objeto.
A gente pode dar o push, mas o push modifica o original.
Então eu quero criar uma nova lista com os mesmos objetos, mais um.
Eu vou usar esse concat, tá bom?
E vou adicionar o quê?
O objeto id4.
Você note que aqui a gente recebe um novo objeto com o id4 adicionado.
Se você olhar em lista de novo, não foi modificado, isso aqui é uma nova lista.
Então é isso que a gente quer, tá bom?
Então vamos dar o concat.
Ponto concat, o quê?
A gente quer concat o novo post.
Nesse caso, vai ser o quê?
Se você se lembrar do action creator, voltando aqui para o action creator, do create post, lá no arquivo src-actions-index.
E a gente tem o payload, que é a request.
Quando a gente faz o pedido ao KTP de post, normalmente a gente recebe o objeto que foi criado.
Só para confirmar, eu vou no postman, tá bom?
Vamos lá no postman.
Eu vou criar um novo post aqui, deixa eu ter aqui kd.
Vou copiar a url aqui, barra post.
E vou criar esse novo post aqui, certo?
Eu vou dar send.
Mandou e recebeu aqui a resposta, a resposta ao novo post.
201 created, tá bom?
E tem esse cara aqui com o id, certo?
Então, vamos usar esse cara, que vai estar no request.data, né?
Nesse caso, é o payload.
Então, esse cara aqui, voltando ao reducer, a gente vai concat o quê?
Action.payload.data, certo?
E retorno o estado com o ó, aquele ó ali.
Como esse nome é o mesmo, eu vou fazer assim.
Certo? Então, vamos ver se vai funcionar.
Vou voltar aqui para o simulador.
O sinal de que ele já está aqui.
Eu vou funcionar um novo.
Tudo.
Vou clicar OK.
Vamos esperar um, dois, três.
E veio o cara, certo?
Então, isso resolve o bug, a jeita que ele bug,
que a gente tem do action creator, você receber a resposta,
depois da cena ser mudada, tá bom?
Então, se você achou mais bugs desse nosso projeto,
deixe comentários aí, valeu?
E por esse vídeo é só. Até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: