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

时间:2015-07-28 20:51:19

标签: reactjs flux immutable.js redux

我有一个app-state对象,看起来像这样:

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
});

1 个答案:

答案 0 :(得分:4)

您应该只能将merge函数更改为mergeDeep:

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