Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

114
Vistas
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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda