[英]How to add a new key/value pair in a nested Map using Immutable.js
[英]how to add new value to a immutable map of a immutable list?
下面是我的代码
// messageList is a Immutable List
const newMessage: any = messageList.map((msg: any) => {
msg.set('name', 'bbb');
});
但是我得到了
msg.set is not a function
在控制台中。
有什么问题吗?
一种方法是遵循以下步骤:
来自文档:使用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不会给您更新列表中元素的可能性。 您必须创建一个修改了该元素的新列表。
在列表中更新的示例(从React Reducer):
function fn(state) {
targets = state.get('targets');
targets = targets.push(action.data);
return state
.set('targets', targets)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.