3
respostas

connect() em um arquivo que tenha várias classes

Olá! Seguindo o que aprendi no curso, bolei uma "estrutura" de CRUD que faço o seguinte: tenho um arquivo em /src/components/Place/index.js e dentro dele tenho as operações básicas:

export class Place extends Component { ... }
export class PlaceCreate extends Component { ... }
export class PlaceUpdate extends Component { ... }
export class PlaceDelete extends Component { ... }

Eu tenho um componente (configurado com o Redux) que é responsável de ficar mostrando aqueles alerta de sucesso, erro, warning e etc e preciso que essas 4 classes possam dá dispatch().

Tentei algo desse tipo:

const mapDispatchToProps = (dispatch, ownProps) => ({
    ...
});

export default connect(null, mapDispatchToProps)(Place, PlaceCreate, PlaceUpdate, PlaceDelete);

Existe uma forma para conectar várias classes?

3 respostas

Opa, até onde eu sei não vai rolar :(. Você precisa conectar um componente com a store e através das funções que você passa como argumento ela atualiza o necessário. Você poderia, se quiser, criar um componente pai que junta os 4... mas não sei se faz sentido para você.

Olá Alberto! Você poderia então me sugerir uma estrutura de componentes para uma CRUD? Pq a minha ideia inicial é fazer mais ou menos o que você fez no cadastro de livros da parte 1 do treinamento:

Ter um componente com as 4 operações e etc. Você poderia me orientar qual a melhor forma de arquitetar isso com redux ?

Mil desculpas pela demora! Pensando com você, um pouco diferente agora, eu cria um container para cada componente do seu crud. Que nem tem aqui => https://github.com/alberto-alura/projeto-instalura-curso/blob/master/src/componentes/Timeline.js

Aí você pode importar eles e usar onde bem entender. Realmente não precisa agrupar todos em um mesmo container component.