Publicado em: 17/03/2025

Au 17 - Front-end - React - Criando funcionalidade de edição - Mestres BEGIN


Neste vídeo, implementamos a funcionalidade de edição de produtos em nossa aplicação React, permitindo que os usuários atualizem informações dos produtos existentes através do mesmo formulário usado para criação.

Preparação Inicial

Antes de começar, realizamos alguns ajustes importantes:

  • Renomeamos estados e funções para melhor clareza
  • Criamos funções específicas para fechar cada modal
  • Corrigimos nomenclaturas de eventos (onClick vs onPress)
  • Removemos colunas desnecessárias da tabela de produtos

Lógica de Edição

Implementamos um fluxo completo para edição de produtos:

  1. Criamos um estado editItem para armazenar o produto sendo editado
  2. Adicionamos a propriedade defaultValues ao formulário de produto
  3. Adaptamos os componentes de input para receber valores padrão
  4. Implementamos a função handleEditClick para iniciar a edição

Componentes Adaptados

Modificamos nossos componentes para suportar a edição:

  • InputText: Adicionada propriedade defaultValue
  • InputTextArea: Suporte para valor inicial
  • InputSelect: Lógica especial para seleção padrão (com tratamento case-insensitive)
  • AddProductForm: Aceita defaultValues e alterna entre "Adicionar" e "Editar"

Fluxo de Requisições

Implementamos a diferenciação entre criação e edição:

1if (defaultValues) {
2  // Requisição PUT para edição
3  await api.put(`/product/${defaultValues._id}`, formData);
4} else {
5  // Requisição POST para criação
6  await api.post("/product", formData);
7}

Tratamento de Estados

Gerenciamos corretamente os estados após operações:

1onProductCreation(); // Atualiza lista de produtos
2setShowProductForm(false); // Fecha o modal
3setEditItem(undefined); // Limpa o item em edição

Desafios Encontrados

Alguns problemas que enfrentamos e como resolvemos:

  • Comparação case-sensitive nas categorias (resolvido com toLowerCase())
  • Timeout no servidor durante requisições longas
  • Necessidade de limpar ambos os estados (showProductForm e editItem)

Próximos Passos

Para as próximas aulas planejamos:

  • Investigar e resolver os erros de timeout
  • Melhorar o feedback durante operações assíncronas
  • Implementar validações adicionais no formulário
  • Adicionar confirmação para edição (similar ao delete)

Considerações Finais

Esta implementação nos trouxe importantes aprendizados:

  • A importância de componentes genéricos e reutilizáveis
  • Como gerenciar múltiplos estados relacionados
  • A vantagem de usar o mesmo formulário para criação e edição
  • A necessidade de tratamento consistente de erros

A funcionalidade completa de CRUD (Create, Read, Update, Delete) agora está implementada, proporcionando uma base sólida para evoluções futuras da aplicação.

Fernando Cunha
Artigo deFernando Cunha

Com mais de 15 anos de experiência em tecnologia e formado pela FAAP em Administração de empresas, hoje é o CEO da Mestres da Web, empresa referência no mercado nacional e com projeções de expansão internacional.

últimos vídeos

veja nossos vídeos mais recentes e esteja por dentro de muitas novidades.

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN
play

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN

Explorando a estrutura gerada pelo Create React App, entendendo o papel das pastas public e src, os conceitos de Virtual DOM, JSX e componentes, além de como o CSS é aplicado nos projetos React.

Autor deste artigo
Fernando Cunha17/03/2025
Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN
play

Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN

Explorando a criação de um layout fixo para a aplicação React, com barra lateral, barra superior e área dinâmica para conteúdo. Utilizando o React Router Dom v6 para gerenciar navegação entre rotas.

Autor deste artigo
Fernando Cunha17/03/2025
Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN
play

Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN

Abordando técnicas para organizar estilos em React, utilizando seletores CSS, CSS Modules, integração com React Router, reset CSS eficiente e boas práticas para garantir consistência visual e manutenibilidade.

Autor deste artigo
Fernando Cunha17/03/2025