Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

De qual componente é essa responsabilidade?

Fala galera!

Pensei em um problema para tentar codificar e estudar. É o seguinte: tenho um formulário que é representado pelo componente . Existem outros dois componentes que são filhos deste, são o e o .

Os produtos disponíveis são mostrados em uma tabela onde em cada linha tem um botão de "+" que se o usuário clicar, tem que adicionar esse produto na tabela dos produtos adicionados e inabilitar o botão de "+" do produto clicado.

Nos produtos adicionados a mesma coisa, só que o botão de cada linha é "-", caso for clicado tem que remover o produto adicionado e deixar o botão de "+" equivalente na tabela de disponíveis habilitado novamente.

Minhas dúvidas são as seguintes:

  1. Pensando na forma mais correta de fazer, de quem é a responsabilidade de carregar os produtos disponíveis? É do próprio componente ou a Solicitacao deve carregar e passar o array para o componente?

  2. Quando o evento do botão + for disparado, o correto é de alguma forma fazer com que os ProdutosAdicionados já adicione o produto ou quem deve fazer a manipulação do array de produtos adicionados é sempre a Solicitacao e então repassar como parâmetro para dentro do componenten dos adicionados?

Minhas dúvidas são nesse sentido, de imaginar qual seria a melhor solução, existem vários jeitos de fazer mas gostaria de uma voz com mais experiência para me dizer os prós e contras de cada jeito.

Pense também na reusabilidade dos componentes. Quais seriam os jeitos de fazer para torná-los mais reutilizáveis?

Desde já agradeço a ajuda!

Att.

1 resposta
solução!

Olha, tanto para a primeira quanto para a segunda pergunta, eu acho a segunda abordagem a melhor. Você isola a lógica num componente pai e repassa as informações para os filhos... Isso vai ser bem tratado no segundo curso, são os chamados container e presentational components.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software