ImmutableJS 在映射期间更新第三个参数?
ImmutableJS updates the third argument during mapping?
我有一个不可变列表并且我 运行 一个 map
。第三个参数是列表本身 (iter
),但它似乎没有引用原始列表,而是针对它已经处理过的元素更新它。
Immutable.fromJS([1, 2]).map((e, i, l) => console.log(l.toJS()))
打印:
[1, 2]
[undefined, 2]
对于第一个元素,它打印原始列表,但对于第二个元素,列表似乎已更改。
我希望第三个参数始终引用原始列表而不是部分更新的列表。
我确定我只是遗漏了一个小问题,但我不明白为什么不是这样。
Immutable.version
"4.0.0-rc.12"
这是一项性能优化功能。
出于性能原因,创建了一个可变列表,这也是在映射循环中传递的内容,而不是原始列表。您必须自己保留原始实例。
https://github.com/immutable-js/immutable-js/blob/master/src/List.js#L176
我有一个不可变列表并且我 运行 一个 map
。第三个参数是列表本身 (iter
),但它似乎没有引用原始列表,而是针对它已经处理过的元素更新它。
Immutable.fromJS([1, 2]).map((e, i, l) => console.log(l.toJS()))
打印:
[1, 2]
[undefined, 2]
对于第一个元素,它打印原始列表,但对于第二个元素,列表似乎已更改。
我希望第三个参数始终引用原始列表而不是部分更新的列表。
我确定我只是遗漏了一个小问题,但我不明白为什么不是这样。
Immutable.version
"4.0.0-rc.12"
这是一项性能优化功能。
出于性能原因,创建了一个可变列表,这也是在映射循环中传递的内容,而不是原始列表。您必须自己保留原始实例。
https://github.com/immutable-js/immutable-js/blob/master/src/List.js#L176