所以,我有一个默认的不可变列表:
var someObject = Immutable.Map({
myList: Immutable.List([4,5,6,7])
})
现在,我允许一个人覆盖这个列表,但我仍然需要它包含在" someObject"中。基本上,如果用户提供数组,我们用这个" new List"替换myList中的内容。我试图这样做,没有运气。
基本上,如果这个newList存在,请使用它 - 如果不存在,请将myList重置为自身或忽略。
//example
var newList = [44444,99999]
someObject.get('myList')
.clear()
.set('myList', newList || someObject.get('myList'))
答案 0 :(得分:0)
这是不可能的,因为immutable.js提供的对象是不可变的 - 这就是他们的观点。
而不是尝试改变someObject,一种完成你尝试做的事情的方法是定义defaultList = Immutable.List(4, 5, 6, 7)
,然后在之后构建someObject
用户输入了他们的列表。
if (userList) {
someObject = Immutable.Map({myList: Immutable.List(userList)})
} else {
someObject = Immutable.Map({myList: Immutable.List(defaultList)})
}