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,并合并currentPage
和totalPages
从回应。到目前为止,使用 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
我有一个应用程序状态对象,看起来像这样:
const initialState = Immutable.fromJS({
$isLoading: true,
currentPage: 0,
totalPages: 1,
results: []
});
当我从服务器获取时(使用fetch
API),我想将$isLoading
设置为false,并合并currentPage
和totalPages
从回应。到目前为止,使用 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