Aula 08
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:
-
Uso do
bindActionCreators
:- A função
bindActionCreators
é utilizada dentro domapDispatchToProps
para vincular um objeto de action creators, comofetchPost
, 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.
- A função
-
Estrutura do
mapDispatchToProps
:- A função
mapDispatchToProps
deve aceitar odispatch
como seu segundo argumento. - O objeto passado para
bindActionCreators
disponibiliza as actions como props do componente, por exemplo,this.props.fetchPost
.
- A função
-
Importando as dependências necessárias:
- É necessário importar
bindActionCreators
do Redux e as action creators pertinentes, comofetchPost
do arquivoActions/index
. - O uso de destruturação é mencionado para importar apenas a action desejada.
- É necessário importar
-
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.
- Após as importações, assegura-se que o objeto é retornado vazio em
-
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: