我有一个app-state对象,看起来像这样:
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
});
答案 0 :(得分:4)
您应该只能将merge函数更改为mergeDeep:
https://facebook.github.io/immutable-js/docs/#/Map/mergeDeep