2016-06-15 6 views
5

All:

Jestem całkiem nowy, React niezmienność pomocników, gdy próbuję użyć $ splice jak:

doc od $ splice to:

{$ splice: tablica tablic} dla każdej pozycji w tablicach wywołanie splice() na celu z parametrami dostarczonymi przez pozycję.

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], 
      ] 
     } 
    } 
}); 

Myślałem wszystkie operacje w tej tablicy $ spawów, powinna być oparta na oryginalnej tarczy, weź mój kod na przykład:

[1, 1, 33, 44] zastąpi 2 z 33 44

[3, 2, 55, 66] zastąpi 4, 5 o 55 66

więc końcowa reault należy [1, 33, 44, 3, 55, 66, 6]

Ale rzeczywisty wynik to [1, 33, 44, 55, 66, 5, 6], który wydaje się, że te dwie operacje są oparte na poprzedniej tablicy wyników operacji.

Zastanawiam się, w jaki sposób mogę zastosować wszystkie operacje na pierwotnym celu?

Dzięki

Odpowiedz

0

zbyt pewni o React niezmienność pomocników ale w JS zwykle byłoby użyć slice utrzymać tablicę do jego pierwotnej wartości. splice faktycznie modyfikuje oryginalną tablicę, więc każda kolejna operacja zostanie wykonana z wynikiem poprzedniego.