Um momento
Aula 08
Cursos / Introdução ao Redux com o React Native
Definição de mapDispatchToProps com bindActionCreators – Como Usar connect do React Redux

Summary

Resumo do Transcript

O áudio discute como utilizar a função bindActionCreators do Redux para conectar ações a um componente React. A seguir estão os principais pontos abordados:

  1. Uso do bindActionCreators:

    • A função bindActionCreators é utilizada dentro do mapDispatchToProps para vincular um objeto de action creators, como fetchPost, a um componente.
    • O primeiro argumento da função é um objeto com as ações, enquanto o segundo argumento é o dispatch, que é responsável por enviar as ações para o store do Redux.
  2. Estrutura do mapDispatchToProps:

    • A função mapDispatchToProps deve aceitar o dispatch como seu segundo argumento.
    • O objeto passado para bindActionCreators disponibiliza as actions como props do componente, por exemplo, this.props.fetchPost.
  3. Importando as dependências necessárias:

    • É necessário importar bindActionCreators do Redux e as action creators pertinentes, como fetchPost do arquivo Actions/index.
    • O uso de destruturação é mencionado para importar apenas a action desejada.
  4. Preparação do componente:

    • Após as importações, assegura-se que o objeto é retornado vazio em mapStateToProps para garantir que o componente está corretamente configurado.
  5. Testes e depuração:

    • O apresentador demonstra um teste no simulador para verificar se a configuração funcionou, mencionando um erro de 'post undefined', indicando que há algo a ser corrigido no código relacionado a reducers.

Essa discussão abrange como configurar e vincular ações do Redux a componentes React, além de abordar boas práticas de importação e testes.

Video Transcript

A maneira que a gente vai fazer isso é usando uma função chamada bindActionCreators, tá bom? Que é do Redux. Então, o que acontece aqui é na mapDispatchProfs a gente dá um retorno e vai chamar o bindActionCreators. E vai passar um objeto com o nome do reducer, por exemplo, fetchPost. Tá aí o objeto. Senor, aqui isso aqui é a mesma coisa. Isso, na verdade, se eu estou dizendo que eu quero ter um prop dentro do componente chamar fetchPost, o que vai chamar o fetchPostReducer? Não reducer, o actionCreator, né? Desculpa. E o segundo argumento é o dispatch. Na verdade, é argumento da mapDispatchProfs, tem que ter esse cara aqui. Se tem uma função mapDispatchProfs, tem o dispatch como argumento. A gente não falou muito do dispatch, mas esse cara é o que é o responsável por mandar ou enviar todas as actions para todos os Redux. Já é feito para a gente. Tá bom? Então, tem que ter ele como segundo argumento para o bindActionCreators. O primeiro argumento é só um objeto e cujas chaves serão disponibilizadas como o this.profs.fetchPost, né? Esse cara aqui podia ser qualquer coisa assim, então vai aparecer como dentro do props assim, entendeu? Mas, normalmente, eu sempre põe o mesmo nome. E como eu tenho o mesmo nome, por causa do IAS6, você pode fazer... Se tem o valor... Tem a propriedade e o valor for o mesmo nome, você pode apagar que vai ser a mesma coisa. Esse aqui é a mesma coisa que isso. No IAS6, versão JavaScript. Tá bom? Então, eu vou fazer isso para ficar mais legal. Mas saiba que isso significa isso. Tá tudo legal no dispatch de props, mas o problema é a gente não importou esse cara e nem importou esse cara. Não sabe o que é, então a gente vai lá em cima e vamos importar. Então, vou aqui import, bindActionCreators.com. BindActionCreators importado Redux. Tá bom? BindActionCreators importado Redux. E vou importar os Redux, o ActionCreators, tá bom? Vou aqui, antes do list item. Normalmente, eu põe todos os importos que são de módulos, universais primeiro e os módulos locais depois e depois dos componentes que a gente fez. Tá bom? E agora, vamos dar o import do FatPost. Mas cadê esse cara? Esse FatPost está dentro do quê? Vamos olhar. Está dentro do Actions barra index. Está aqui. A gente tem o ExportConst. Quando a gente fala ExportConst, se a gente tem o import no index, ele vai pegar todo o objeto. E esse objeto vai ter o FatPost. FatPost com a função aqui. Definida, né? Mas a gente não quer todo o objeto. A gente só quer o FatPost dentro desse objeto, porque poderia ter menos, poderia ter muitos, né? Então, a gente só quer isso, então a gente vai dar uma destruturação desse cara. E a gente vai fazer assim. Import FatPost from... Tá onde isso? Tá um diretório acima, então dois pontos. Barra Actions. Não precisa index porque, por causa do nome index, não precisa digitar. Já vai olhar no index. Então, esse cara vai pegar o FatPost dentro do objeto que é esse arquivo aqui, index, que é retornado pelo arquivo. Então, a gente já tem aqui, importado, e tem o Binaxual Creators. Então, já pode usar aqui. Tudo OK? Tudo OK. Entendeu? E esse cara vai ser disponibilizado como uma props dentro do componente List. Então, já vai para chamar. Salvar. Esse cara aqui pode ficar... Vou dar só um return aqui, objeto vazio, só para deixar, tá bom? Vou deixar lá. Deu um return object vazio para o mapState of props. Só para você ver. Dá um olhado aqui. Agora, vou testar. Se eu não esqueci nada. Vamos ver se eu não esqueci nada. Vou para o meu simulador ver se dá um erro. Post undefined. Vamos ver o que é isso. Combine reducers. Ah, sei, sei, sei. Tá aqui index. Post. Deu um definido.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: