Tengo un estado que contiene el orden de clasificación. Cuando presiono un botón, quiero alternar el orden de clasificación, de -1 a 1 y viceversa.
const [order, setOrder] = React.useState(1); function handleSort(elementIndex) { let firstSort = -1; let secondSort = 1; setContent((prev) => { prev.sort((line1, line2) => { return line1.props.children[elementIndex].props.children > line2.props.children[elementIndex].props.children ? firstSort * order : secondSort * order; }); console.log(prev); return [...prev]; }); setOrder((prev) => prev * -1); } <button onClick={() => { handleSort( temporaryHeadersArrayCopy.findIndex( (elem) => elem === element ) ); }} >Esto es solo una fracción del código, pero el principal problema es que el orden nunca se modifica. Probé el registro de la consola, pero por lo que he leído, no cambia inmediatamente porque es una devolución de llamada y funciona de forma asíncrona.
¡Gracias!
No estoy del todo seguro de lo que quieres hacer con este código. Pero tiene una matriz que desea ordenar, según un índice. ¿Tengo razón?
Usaría useMemo, con la matriz real y el índice como dependencias. Esto debería garantizar que su matriz ordenada se actualice cada vez que cambie una de las dependencias.