const { items, ids } = action.payload;
const { fetchedItems } = state;
const diff = _.difference(state.ids, action.payload.ids);
// @APPEND
for (let i = 0; i < items.length; i++) {
fetchedItems.set(items[i].id, items[i]);
}
// @DELETE
for (let i = 0; i < diff.length; i++) {
fetchedItems.delete(diff[i]);
}
const myArray = Array.from(fetchedItems.values());
return {
...state,
items: Array.from(fetchedItems.values()), // not for use
fetchedItems,
ids: action.payload.ids,
syncStatus: action.payload.tocMeta.syncStatus
};
Quesstionはソケットに基づいたAPIで、新しいオブジェクトを受け取るたびにMapオブジェクトを使用して、簡単に更新および削除することができます。 、私はaction.payloadオブジェクトから来る新しいアイテムをマップの最初のインデックスに "unshift"のように設定したいと思いますが、そのためにいくつかのトリックを提供できますか?新しいMap()。Set()はMapオブジェクトの一番下に新しい項目を配置し、毎回Map.clear()を実行したくありません。"unshift"メソッドを使用してMapオブジェクトの先頭に項目を追加する
あなたの時間のために多くのThx! –
よろしくお願いします!お役に立てて嬉しいです! – jonahe