说我有这样的结构:
Map({
isFetching: false,
page: 1,
endOfResults: false,
results: List()
})
如何更新此列表中的项目。
说我的清单如下:
Map({
isFetching: false,
page: 1,
endOfResults: false,
results: List(fromJS([
{id: 1, scored: 0, conceded: 1},
{id: 2, scored: 2, conceded: 1},
{id: 3, scored: 2, conceded: 1},
]))
})
如何更新id为2的嵌套列表项为:
{id: 2, scored:3, conceded: 2}
答案 0 :(得分:1)
您可以使用updateIn
方法:
// Sample data
var data = Immutable.Map({
isFetching: false,
page: 1,
endOfResults: false,
results: Immutable.fromJS([
{id: 1, scored: 0, conceded: 1},
{id: 2, scored: 2, conceded: 1},
{id: 3, scored: 2, conceded: 1},
])
});
// Get modified result
data = data.updateIn(['results',1],x => Immutable.fromJS({id:2, scored:3, conceded:2}));
// Show result
console.log(data.toJS());

.as-console-wrapper { max-height: 100% !important; top: 0; }

<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"></script>
&#13;