Immutable-JS:按键合并地图列表

Immutable-JS: Merge a List of Maps by key

我有一个应用程序状态对象,看起来像这样:

const initialState = Immutable.fromJS({
    $isLoading: true,
    currentPage: 0,
    totalPages: 1,
    results: []
});

当我从服务器获取时(使用fetch API),我想将$isLoading设置为false,并合并currentPagetotalPages从回应。到目前为止,使用 merge 已经很容易了。我不太确定如何在 results 节点中优雅地合并。它们是 Immutable.Map,应该根据 _id 属性 合并。有没有一种优雅的方法可以将其用于这段代码?

return state.merge({
    $isLoading: false,
    currentPage: res.page,
    totalPages: res.pages,
    results: 'something' // Take old results, merge with res.results
});

您应该能够将合并函数更改为 mergeDeep:

https://facebook.github.io/immutable-js/docs/#/Map/mergeDeep