Immutable.js: 如何在导出到数组时保持不变性?
Immutable.js: How to maintain immutability when exporting to array?
我正在将数组传递给不可变列表对象。但是,当列表转换为数组然后更新时,不可变列表对象会被修改。
因此,不可变列表仍然是可变的,如何在仍然能够 return 使用数组的同时避免这种情况?
请同时说明。
这里有一些伪代码来说明这个场景:
var data = [{id:'a'}, {id:'b'}, {id:'c'}];
var immutables = Immutable.List(data).asImmutable(); //Immutable list?
var myData = immutables.toArray();
myData[0] = {id:'x'}; //object is updated in immutable list as well
在不可变结构中包含可变数据几乎总是一个坏主意。(换句话说更有意义)。为避免这种情况,请使用 Immutable.fromJS(data) 而不是 Immutable.List(data) 和 Immutable.Map(data) - 正如@mostruash 建议的那样。
我正在将数组传递给不可变列表对象。但是,当列表转换为数组然后更新时,不可变列表对象会被修改。
因此,不可变列表仍然是可变的,如何在仍然能够 return 使用数组的同时避免这种情况?
请同时说明。 这里有一些伪代码来说明这个场景:
var data = [{id:'a'}, {id:'b'}, {id:'c'}];
var immutables = Immutable.List(data).asImmutable(); //Immutable list?
var myData = immutables.toArray();
myData[0] = {id:'x'}; //object is updated in immutable list as well
在不可变结构中包含可变数据几乎总是一个坏主意。(换句话说更有意义)。为避免这种情况,请使用 Immutable.fromJS(data) 而不是 Immutable.List(data) 和 Immutable.Map(data) - 正如@mostruash 建议的那样。