我正在构建一个应用程序,其中有 N 列(N 个项目列表),并且通过使用从有角材料中拖放,我可以在它们之间移动项目。我还在我的应用程序中使用NGRX和EntityAdapter。
我想问一下,当我移动一个对象时,如何正确更新项目的顺序?
示例:从“待办事项”列中移动第一项。该物品应放在刷牙之间并拿起杂货。

现在我知道如何更新列表中每个项目的列。我不知道的是如何按正确的顺序排列(默认情况下排序,所以可能按 id)
物品界面:
export interface Item{
id:string;
title:string;
columnId:string;
}
columnId update 的调度操作:
drop(event: CdkDragDrop<string[]>) {
const droppedItem: SavedJob = event.item.data;
const previousColumn = event.previousContainer.id;
const currentColumn = event.container.id;
this.store.dispatch(
updateColumn({
updates: {
id: droppedItem.id,
changes: {
columnId: currentColumn
}
}
})
);
减速器:
on(SavedJobsActions.updateColumn,(state,action)=>{
return savedJobsAdapter.updateOne(action.updates,{
...state,
entities:{
...state.entities,
[action.updates.id]:{
...state.entities[action.updates.id]
}
}
}
)
})
我应该如何正确更新columnId每个项目的顺序和顺序?我知道我应该为每个项目添加订单键,但是更新每一列的订单值可能会很困难。