我正在使用 React.js 中的拖放交互。我正在使用下面的 onDragEnd 函数完成拖动时调用的 splice 函数对“行”数组重新排序:
onDragEnd = (result) => {
const { destination, source, draggableId, type } = result;
if (!destination) {
return;
}
if (
destination.draggableId === source.droppableId &&
destination.index === source.index
) {
return;
}
if (type === "row") {
const newRowOrder = Array.from(**this.state.currentRows**);
newRowOrder.splice(source.index, 1);
newRowOrder.splice(destination.index, 0, **draggableId**);
const newState = {
...this.state,
currentRows: newRowOrder,
};
this.setState(newState);
}
};
在调用 onDragEnd 函数之前,currentRow 状态如下所示: onDragEnd 之前的 currentRow 状态
当函数被调用时,拼接函数起作用(我认为)但它不会移动数组中的整个对象,只是移动 ID。拼接函数中使用的draggableId是需要移动的对象的ID。
调用 onDragEnd 函数后,currentRow 状态如下所示: onDragEnd 后的 currentRow 状态
可以将整个对象移动到新索引吗?