Tengo un problema al tratar de actualizar mi estado. Estoy tratando de actualizar los elementos dentro de mis objetos existentes cada vez que suelto el elemento; sin embargo, cada vez que lo actualizo, agrega un nuevo objeto a mi matriz en lugar de actualizarlos. ¿Qué estoy haciendo mal?
const handleDragEnd = (event) => { const { active, over } = event; const activeContainer = event.active.data.current.sortable.containerId; const overContainer = event.over.data.current.sortable.containerId; if (active.id !== over.id) { const oldIndex = columns[activeContainer].items.findIndex( ({ id }) => id === active.id ); const newIndex = columns[overContainer].items.findIndex( ({ id }) => id === over.id ); const result = arrayMove( columns[overContainer].items, oldIndex, newIndex ); console.log("oldindex", columns[activeContainer].items); console.log("newindex", result); if (activeContainer !== overContainer) { } setColumns((columns) => ({ ...columns, [newIndex]: { ...columns[newIndex], items: result } })); console.log("set colmns", columns); // setColumns((items) => { // console.log('items', items) // const oldIndex = items[activeContainer].items.findIndex(({id}) => id === active.id); // const newIndex = items[overContainer].items.findIndex(({id}) => id === over.id); // console.log('colnew', columns) // console.log('oldindex', oldIndex) // console.log('newindex', newIndex) // return arrayMove(items[overContainer], oldIndex, newIndex); // }); } };Intente actualizar su código setColumns al siguiente código mencionado:
setColumns((columns) => ({ ...columns, [activeContainer]: { ...columns[activeContainer], items: result } }));Según tengo entendido, los datos no se actualizaron correctamente en los estados.