Aula 44
Resetamos os Valores no Redux do Formulário para Criar Novo Post
Summary
Resumo da Apresentação sobre Redux e Manipulação de Estado
Introdução
- A apresentação discute a manipulação e validação de campos em um formulário de postagem usando Redux.
Comportamento do Estado
- Se um usuário clica em "novo" e insere dados, ao voltar e clicar em "novo" novamente, os dados permanecem. Isso ocorre porque os campos estão conectados ao estado do Redux que mantém os valores.
Comportamento ao Editar
- Ao clicar em "editar" e voltar, os campos não mantêm os valores. Isso se deve à chamada do ciclo de vida
componentWillMount
, que reinicializa o formulário.
Solução Proposta
- Para resolver o problema do formulário em "novo post":
- Adicionar a função
componentWillMount
na cena do novo post. - Chamar o
resetPostForm
, que é um action creator que redefine o estado inicial dos campos. - Importar
resetPostForm
e injetá-lo no componente.
- Adicionar a função
Implementação
- Após a implementação da função no ciclo de vida e a chamada do action creator, o formulário deve ser redefinido corretamente ao retornar à cena de "novo post".
Conclusão
- O uso correto dos ciclos de vida e Redux permite uma melhor gestão do estado e a resolução de problemas de persistência de dados em formulários.
Video Transcript
Antes de continuar com a validação dos caracteres de cada campo, gostaria de mostrar
uma coisa aqui.
Se você clicar em novo, digitar alguma coisa e depois ela está e ainda se deixa algum
conteúdo aqui ou ainda no título e voltar, aí clica em novo de novo, olha o que acontece.
Ele mantém o estado.
Isso porque esses campos são ligados ao estado do Redux e por isso quando a gente entra
nessa nova cena, nesse novo post, como o estado é conectado ao Redux, sempre vai ter o mesmo
valor, né?
Isso não acho que a gente tinha algo parecido quando você clica em um novo post e clica
em editar.
Deixa eu ver aqui.
Carregando um pouco.
Clica em editar, digite alguma coisa e volte.
Você se tiver algum problema, note que não tem nada aqui, não apareceu nada, porque
quando você dá o pop do editar post, vai chamar aquele life cycle, aquela função
do life cycle, se você lembra?
O component will amount.
Então vamos voltar aqui para o editar, para o par de um editar post.
src-components-postedit.
Senote que a gente tinha esse negócio aqui.
Component will amount para recetar o form.
Certo?
A gente vai prestar a mesma coisa para ajeitar a corrente de aquele problema na cena de
novo post.
Aqui você vai para o novo post, digita alguma coisa, esqueceu, volta, ainda está lá, porque
o estado do Redux está mantido.
Essa função que a gente fez reset post form é um action creator.
Se você voltar para o actions, você ir ao actions.index, cadê o reset?
Se uma despachação chamada reset post form, que o post reducer retorna o initial state,
o novo estado com os valores dessa variável chamada initial state, que receta tudo.
Título e body ficam vazios e o title arrow e o body vão ser no.
Então a gente quer fazer isso.
Então para corretir o problema, vamos para a cena que tem o problema, o novo post.
Vai para o novo post.
E a gente vai definir o component will amount, certo?
Está aqui post new.
Eu acho que deveria pagar tudo, mas se você quiser deixar formular assim para quando voltar
para o novo, ainda está mantido, você pode fazer isso também, mas só para te ensinar
como corre de, se você achar isso, que isso foi um problema.
Então só adicionar a função de life sack no post new.
Component will amount, certo?
E dentro do component will amount, chama aquele action creator para reset o post form.
Como a gente está usando action creator, vamos injetá-lo no post new lá embaixo.
No map dispatch to props reset post form.
Opa.
E também vamos importá-lo lá em cima.
Importa aqui.
Reset post form, certo?
Vamos testar agora.
Eu acho que já está apagado, né?
Então está aí a direita aquele problema, certo?
Só adicionar a função life sack e chamar o reset post form para recertar o formular
e quando o novo post, após essa cena, foi removido, dá o pop.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: