Sto cercando una funzione pura, per modificare il mio oggetto stato immutabile. Lo stato originale indicato come parametro non deve essere modificato. Ciò è particolarmente utile quando si lavora con framework come Redux e rende molto più facile lavorare con l'oggetto immutable in javascript. Soprattutto dal momento che lavorare con l'operatore di spread di oggetti usando Babel è già possibile.Qual è il modo più breve per modificare gli oggetti immutabili utilizzando operatori di diffusione e destrutturazione
non ho trovato nulla di meglio che prima copiare l'oggetto, e di assegnare/eliminare la proprietà che voglio in questo modo:
function updateState(state, item) {
newState = {...state};
newState[item.id] = item;
return newState;
}
function deleteProperty(state, id) {
var newState = {...state};
delete newState[id];
return newState;
}
Mi sento come potrebbe essere più breve
Rispondere alla propria domanda pochi secondi dopo aver chiesto ?! – ColinE
Ho usato il campo sotto il modulo domanda per rispondere, poiché ho trovato la soluzione prima di pubblicare la domanda. Dal googling per esso è piuttosto difficile l'ho messo per tutti qui questo era. – Tarion
Ma in realtà, la rimozione di una proprietà è anche una domanda interessante. Poiché l'impostazione di una proprietà non è definita, la chiave non viene rimossa e l'eliminazione sembra non funzionare all'interno delle definizioni dell'oggetto;) – Tarion