Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

121
Visualizações
Reducir bloques duplicados en un proyecto de React

Estoy optimizando mi proyecto React según los resultados de Sonarcloud. Está en bastante buen estado, sin embargo, obtengo una alta puntuación de duplicación (20,5 %). Cuando lo examino, veo que efectivamente hay bloques de código recurrentes en diferentes archivos. El problema es que estos bloques se utilizan para establecer estados localmente después de llamadas API exitosas. Aquí hay un par de ejemplos:

  1. Categoría predeterminada.tsx:
 const handleUpdate = () => { let copyCategories = JSON.parse(JSON.stringify(categories)); copyCategories.map((c) => Object.assign({}, c, { url: encodeURIComponent(c.url) }) ); setDisabledButton(true); apiCall(path, copyCategories) .execute() .then((_r) => { setDisabledButton(false); setSuccess(true); }) .catch((_e) => { handleError(); }); };
  1. Categoría detallada.tsx:
 const handleUpdate = () => { let copyCategories = JSON.parse(JSON.stringify(categories)); copyCategories.map((c) => Object.assign({}, c, { url: encodeURIComponent(c.url) }) ); setDisabledButton(true); apiCall(path, copyCategories) .execute() .then((_r) => { setDisabledButton(false); setSuccess(true); }) .catch((_e) => { handleError(); }); };

No estoy seguro de cómo reducir estos bloques a un solo gancho o una función, ya que configuré estados en ellos. No quiero mover los componentes a un solo componente, ya que cada uno tiene comportamientos diferentes y se volvería muy complicado e imposible de mantener.

He considerado:

  1. Escribiendo un enlace personalizado donde paso los métodos setState como parámetros. Parece terriblemente ineficiente.

  2. Cambiar los nombres de estados y funciones duplicados. Esto probablemente afectaría la puntuación de Sonarcloud, pero ¿existe una mejor práctica real para esta situación?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda