Hola, tengo una matriz en la que cada valor tiene un objeto de árbol profundo. Mantengo una versión de esto en un enlace useState y otra en useRef. Mi idea es hacer los cambios en la referencia y así actualizar el estado. Mis problemas comenzaron con mantener ordenada la matriz, así que agregué una clave de orden para ordenarla.
Esta es una función contenedora para actualizar el estado, no está ordenando ni clonando (ya sea superficial o profunda), la matriz hace que desaparezca el último valor
const updateScope = (newScopes = null as ScopesProps[]) => { if (newScopes) { scopesRef.current = newScopes; } const supposedToBeSorted = scopesRef.current.sort( (a, b) => a.order - b.order ); console.log("aha, gotcha", supposedToBeSorted, [...supposedToBeSorted]); setScopes([...supposedToBeSorted]); };Y esto es lo que tengo registrado
aha, gotcha [{…}] 0: {id: 110134, main: {…}, loaded: false, reorderCriteria: '', order: 1} 1: {id: 107950, main: {…}, loaded: false, reorderCriteria: '', order: 0} length: 2 [[Prototype]]: Array(0) [{…}] 0: {id: 110134, main: {…}, loaded: false, reorderCriteria: '', order: 1} length: 1 [[Prototype]]: Array(0)