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

79
Vistas
Actualización del estado de React Hook sin llamar a setState

Tengo un problema con React en el que mi estado de enlace se actualiza sin llamar a setState.

 const [dataSet2, setDataSet2] = React.useState([ [2, 3, 4], [5, 6, 7], [8, 9, 9], ]); const badFunction = () => { let selections = []; let newSelections = []; let winPercent = 0; let newWinPercent = 1; const depth = 2; const dataHolderTest = dataSet2; let firstWeekTest = dataHolderTest[0]; const weekOneTeamsTest = firstWeekTest.slice(0, depth); for (const weekOneTeamTest of weekOneTeamsTest) { let secondWeekTest = dataHolderTest[1]; newWinPercent = weekOneTeamTest.win_percent * newWinPercent; newSelections.push(weekOneTeamTest.team); for (const team2 of secondWeekTest) { removeAllSelectedTeams(newSelections, secondWeekTest, team2); } } console.log(dataSet2); }; const removeAllSelectedTeams = (selections, dataHolder, team) => { if (selections.includes(team.team)) { const currentTeam = dataHolder.indexOf(team); dataHolder.splice(currentTeam, 1); } return dataHolder; };

He estado revisando esto por un tiempo y parece que la función removeAllSelectedTeams es el problema.

Todavía no entiendo cómo se modifica mi dataSet2 sin llamar al gancho setDataSet2

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si desea hacer una copia de una matriz o un objeto, debe hacerlo así. listTwo = [...listOne] u ObjectTwo = {...ObjectOne} . Simplemente usar = y no usar el operador de propagación no hace una copia de esa matriz u objeto para usted, sino que le da otra referencia a la misma matriz u objeto.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Intente copiar la matriz en dataHolderTest en lugar de asignarla igual a dataSet2 con el operador de propagación ...

De esta manera, no cambia la variable dataSet2 original cuando interactúa con dataHolderTest

const dataHolderTest = [...dataSet2]

about 4 years ago · Juan Pablo Isaza Denunciar
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