以下是我的代码
// messageList is a Immutable List
const newMessage: any = messageList.map((msg: any) => {
msg.set('name', 'bbb');
});
但我得到了
msg.set is not a function
在控制台中。
出了什么问题?
答案 0 :(得分:0)
一种方法是遵循以下步骤:
来自docs:使用set()
为Map添加新的键/值对const updatedMap = oldMap.set(key, value)
实施例
const avengersMap = Immutable.Map({
ironMan: 'Tony Stark',
captainAmerica: 'Steve Rogers'
});
const moreAvengers = avengersMap.set('blackWidow', 'Natasha Romanov');
打字稿也是如此。
有些注意事项:正如您可能知道的那样,您无法修改不可变列表,因此.map上面的.map不会让您更新列表中的元素。您必须创建一个包含已修改元素的新列表。
列表更新示例(来自反应减速器):
function fn(state) {
targets = state.get('targets');
targets = targets.push(action.data);
return state
.set('targets', targets)
}