我有一个应用程序状态对象,它看起来像这样:
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
关于reactjs - 不可变-JS : Merge a List of Maps by key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686827/