Estoy tratando de establecer el estado de la matriz desde el componente secundario que se encuentra en el componente principal.
Traté de usar setNumberOfVar([...varsLines]); este método, pero no está actualizando el estado inmediatamente. Se actualiza pero un paso atrás.
Mi código
const removeVar = (e, val) => { e.preventDefault(); var varsLines = numberOfVar; varsLines = numberOfVar.filter((item) => { return item.postion != val; }); varsLines = varsLines.map((item) => { return { ...item, postion: item.postion > val ? item.postion - 1 : item.postion, }; }); console.log(varsLines); setNumberOfVar([...varsLines]); // <== this line is not updating the state immediately; console.log(numberOfVar); };intenta hacer algo como esto
setNumberOfVar(prevState=>prevState.filter().map())use sus propias condiciones en el filtro y el mapa y vea si funciona o no.
setNumberOfVar() es una operación asíncrona y no actualizará el estado inmediatamente.
Si desea obtener algo como una devolución de llamada cuando se actualiza el estado, puede usar el enlace useEffect que se ejecuta en la actualización del estado.
import {useEffect } from 'react'; useEffect(() => { console.log(numberOfVar); },[numberOfVar]);