2016-06-15 13 views
5

All:

io sono abbastanza nuovo per reagire immutabilità Helpers, quando provo ad usare $ giunzione come:

Il doc di $ giunzione è:

{$ giunzione: array di array} per ciascun elemento array chiamare splice() sul bersaglio con i parametri forniti dal prodotto.

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

ho pensato tutte le operazioni della matrice $ splice, dovrebbero essere basate sul bersaglio originale, prendere il mio codice per esempio:

[1, 1, 33, 44] sostituirà 2 con 33 , 44

[3, 2, 55, 66] sostituirà 4, 5 con 55 66

così la Reault finale dovrebbe essere [1, 33, 44, 3, 55, 66, 6]

Ma il risultato effettivo è [1, 33, 44, 55, 66, 5, 6], che sembra che quelle due operazioni siano basate sulla matrice dei risultati dell'operazione precedente.

Quindi mi chiedo come posso applicare tutte le operazioni sul bersaglio originale?

Grazie

risposta

0

non troppo sicuro circa Reagire immutabilità Helpers ma in JS di solito si usa slice per mantenere la matrice al suo valore originale. splice modifica effettivamente la matrice originale in modo che qualsiasi operazione successiva venga eseguita con il risultato della precedente.

Problemi correlati