Um momento
Aula 11
Cursos / CRUD com o Redux (e React Native)
Reducer para o Formulário de Post

Summary

Resumo do Transcrito

O conteúdo do transcrito é um guia passo a passo sobre como usar o Redux para criar um formulário de postagem em uma aplicação React, com foco na integração de um emulador iOS e Android. Aqui estão os principais pontos abordados:

Objetivo

Criar uma nova postagem usando Redux e React.

Passos Principais

  1. Emulador:

    • O emulador iOS foi aberto e uma nova funcionalidade foi adicionada para interagir com o "Nova Center".
  2. Criação do Formulário:

    • Proporcionar uma caixa de texto para título e conteúdo da postagem.
    • Definir um action creator para submeter a postagem.
  3. Redux State:

    • Definir o estado inicial (initialState) do Redux, que deve conter title e body, ambos inicialmente vazios.
  4. Reducer:

    • Criar um reducer (postFormReducer) para gerenciar o estado do formulário de postagem.
    • Utilizar default parameters do ES6 para facilitar a definição de funções.
    • Implementar um switch dentro do reducer para lidar com diferentes ações.
  5. Combinação de Reducers:

    • Combiná-lo com outros reducers no arquivo de índice de reducers.
  6. Conexão com React:

    • Conectar o componente de postagem com Redux usando connect, definindo mapStateToProps e mapDispatchToProps.
    • Desestruturar title e body a partir do estado do Redux para uso no componente.
  7. Testes e Debugging:

    • Fazer testes para garantir que as propriedades estão acessíveis no componente.
    • Resolver erros como a falta de vírgulas, falta de importações e definições de funções ausentes.
    • Adicionar chaves adequadas em objetos para que as variáveis sejam corretamente atribuídas e substituídas.
  8. Conclusão:

    • Após todos os ajustes e testes, o formulário de postagem é capaz de enviar e exibir o estado corretamente conectado ao Redux.

Nota: O processo envolve depuração cuidadosa e atenção aos detalhes nas definições de funções e estrutura de código. A funcionalidade foi confirmada com sucesso quando valores tentados foram exibidos corretamente a partir do estado inicial definido no reducer.


Este resumo abrange os aspectos principais discutidos no transcrito, com foco em configurar um formulário de postagem em um aplicativo com Redux e React.

Video Transcript

Vamos abrir nosso emulador iOS do Android para ver como a gente agora você note que tem uma palavra nova adicionada no topo, a direita, tanto com um iOS como um Android, você clicar e ele vai para Nova Center que é tudo legal no oposto que a gente tinha feito, então está funcionando, está tudo ok. O iOS demora um pouquinho porque tem que abrir o debugger, quando você abre o debugger do lado fica rapidinho, você note. Fica rapidinho, clicar novo, entendeu? Vamos continuar a fazer essa nova post, post new. Vamos olhar aqui no sketch, se não a gente vai precisar da caixa de texto para o título, conteúdo, precisar chamar um action creator para submeter esse post, vamos pensar no status redux, então vamos aqui, cadê o texto aditou? Eu vou adicionar o reducer, tá bom? Eu quero esse reducer de formulário aqui para esse novo post, por exemplo. Eu posso chamar talvez post form reducer ou form reducer, sei lá, depende de você. Vou chamar post form reducer, no single lá, tá bom? Da mesma maneira que tem esse cara aqui, a gente vai definir nosso original que vai ser, a gente vai ter que pensar no estado redux, a gente está armazenando o título, vou chamar de title, está armazenando o conteúdo, vou chamar de body e quando a gente digita, a maneira que a gente digita esse post, a gente vai atualizando o estado do redux aqui, quando digita o título, quando digita o body do formulário, vai dar atualizada, novo estado fica sendo enviado todo o tempo, então vou pegar esse cara aqui, vou ter tudo o initial state, inicialmente o título vai ser nada para ficar vazio, o título e o conteúdo vazio, tá bom? E vamos definir o reducer, da mesma maneira que a gente fez aqui, export, default e a função, export, default, o reducer sempre tem como o primeiro argumento, é o state e o segundo é o action, o state a gente inicializa com o initial state, initial state, não esqueça que é a novidade do ES6, não tem no ES5, então a gente pode adicionar parâmetros, padrões, default parameters, então vamos lá definir, dar um switch no action.type, e vamos, a gente vai ter várias ações que a gente vai pensar, tá bom? E vamos só por default para ser o estado, se não for nenhuma das ações do caso que tiver, a gente só vai retornar o mesmo estado, o state que vai ser inicialmente esse cara vazio, então a gente tem semicolon ali, ponto e vírgula, se, tá bom? Agora que a gente tem o post reducer, post form reducer, vamos para o index do reducers para poder combinar com os outros reducers, ponto e vírgula, põe o nome que você quiser para esse cara, pode ser post form, vou colocar post form, post form reducer, não acho que eu estou usando o singular, não confunda que o plural aqui não tem S, tá bom? Então a gente tem que importar como eu estou usando esse cara aqui, vamos importar aqui em cima, import post form reducer, tá no mesmo diretório, ponto barra, post form reducer, tá bom? E agora a gente vai ter acesso ao reducer do post form, tá bom? Continuando, vamos para o post new, o que a gente vai fazer aqui, vamos conectar o react com redux, se lembra que sempre no final vai dar o connect com chamo connect com map dispatch, map state props, função que a gente vai definir e a map dispatch to props, né? E passa o componente como o argumento aqui, nesse segundo parênteses aqui, vamos lá definir map state to props, map state to props, função que tem o state como argumento, tá bom? E a gente vai retornar o objeto e vai ser o que? Vai ser as informações do post, então eu posso pegar o que? Vai ser state ponto o que? Ponto post form, ponto título ou ponto bar, né? Ou ponto bar. Vai ser esses dois caras que a gente vai conectar com redux, então como é que eu vou chamar ele? Eu vou chamar esse cara de title, vou chamar esse cara de body, tá bom? Então vai injetar a propriedade chamada title dentro do componente e a propriedade chamada body, então aqui a gente vai se refirir as propriedades assim, des props um title e des props, ponto body, né? Tá bom? Eu posso desduturar esse cara aqui pra não ter que digitar isso duas vezes, assim, const title, body que tá dentro do state, ponto post form, tá bom? Então eu pego state, ponto port form e eu extraio title, extraio o body, dessa maneira eu não preciso mais digitar assim e como eu estou usando a versão esc do JavaScript, se eu tiver um objeto a chave for o mesmo nome do valor, eu posso só tirar isso aqui e só deixar assim, mesma coisa, tá bom? Salva, agora a gente tem acesso como propriedade dentro do componente do title e do body, tá bom? Você vai ver pra testar, eu vou botar um texto aqui, text, só pra você ver outro text, o que que eu vou fazer? Inicialmente tá vazio, só temporariamente eu vou voltar o reducer e vou botar uma coisa aqui, o Lamundo, muito tudo bem, salva, vou ao simulador, reiniciar, a, o que que aconteceu? Um erro, force form reducer, linha 3, vou lá, um, dois, três, eu esqueci a vírgula, tá bom? Vírgula aqui, salva, ok, outro erro, linha 6, coluna, 47, post form reducer, linha 6, é dizendo o que? A next vector toca, não sei o que, eu esqueci da flash, porque eu estou usando a função de flash, esqueci disso, salva, ver aqui, connect is not defined, e agora o que que aconteceu? Vou te dar um tempo pra você corrigir problema. E aí, você achou? Então vamos lá, connect not defined, porque a gente esqueceu de importar o connect no post new.js, vai lá em cima, import, o connect que é parte do react redux, tá bom? react redux tem o connect, salva, vamos lá tentar novamente, map dispatch to props not defined, e aí, o que que aconteceu? Eu não defini map dispatch to props, vamos definir, vamos map dispatch to props, pode só definir a função de flash vazia agora, tá bom? Sem nada, salva, salva pra deixar aí, pra não dar mais erro. Finalmente, depois de tanto debugging, ajeitar esses erros, vamos lá pro novo, cliquei em novo, ah, o que que aconteceu? Map dispatch to props, tem que retornar no seu que? Ah, por que? Porque a gente tem que retornar do map dispatch to props, o que? Um objeto, uma espiritual plane object, não sei o que, senhora aqui do post detail, foi isso, foi o outro listo, não é? Listo, tem um map to props, tem que retornar, escar, não é ok? Bind action creators, bla bla bla, no dispatch como argument, se você quer fazer isso, vamos lá, bind action creators, boon dispatch, for mid user index, vota o post new, define, define o que? Return, ah, na verdade eu acho que esse é o problema aqui, vamos ver, ele achou que esse cara era uma definição da função em vez do objeto, deixa eu só ver, interessante, né, funcionou, ele tava achando que eu queria retornar o objeto vazio, mas tava achando que isso é na verdade uma função, né? Uma função que não tinha nada definido dentro, parecia que você quer esse é o problema, então retorne um objeto sem nada, se quiser adicionar o bind creators, eu vou deixar assim, aí retorna o objeto vazio, deixa eu só abrir o meu debugger aqui para ficar mais rápido, clique no novo, senhora que tem despreparar, despreparar, e por que? Eu esqueci de adicionar uma coisa para a variável, o valor da variável, substituir, vou te dar um tempo aí para você ajeitar, e aí deu certo, achou? Então para consertar isso, a gente tem que adicionar a chave, curly brace, inglês, senão o valor da variável não vai ser adicionado, substituir, variável, adicionar, salvar, tá bom? Se não, pegado aqui, vamos lá do, ah, depois clica novo, olá mundo, oi tudo bem, note olá mundo, oi tudo bem, vocês acessaram, e eles são parte do reducer do initial state, que foi definido, o estado inicial para o postform reducer, né, do postform reducer, então a gente quer inicialmente vazio, a gente já provou que funciona, o estado do redux está conectado aqui via props,
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: