如何在React Immutability Helpers的同一个集合中使用多个$ splice

Kua*_*uan 5 immutability reactjs

所有:

当我尝试使用$ splice时,我对React Immutability Helpers很陌生:

$ splice的文档是:

数组中每个项的{$ splice:数组数组}使用项提供的参数调用目标上的splice().

var update = require('react-addons-update');
var collection = [1, 2, {a: [1,2,3,4,5,6]}];
var newCollection = update(collection, {
    2: {
        a: {
            $splice: [
            [1, 1, 33, 44],
            [3, 2, 55, 66],
            ]
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我认为$ splice数组中的所有操作都应该基于原始目标,以我的代码为例:

[1,1,33,44]将替换为33,44

[3,2,55,66]将以55 66取代4,5

所以最终的罢工应该是[1,33,44,3,55,66,6]

但实际结果是[1,33,44,55,66,5,6],这似乎是两个操作基于先前的操作结果数组.

所以我想知道如何在原始目标上应用所有操作?

谢谢

小智 0

不太确定 React Immutability Helpers,但在 JS 中通常你会用它slice来保持数组的原始值。splice实际上会修改原始数组,因此任何后续操作都将使用前一个操作的结果执行。