Я використовую Redux. У своєму редукторі я намагаюся видалити властивість з такого об’єкта:
const state = {
a: '1',
b: '2',
c: {
x: '42',
y: '43'
},
}
І я хочу мати щось подібне без мутації початкового стану:
const newState = {
a: '1',
b: '2',
c: {
x: '42',
},
}
Я намагався:
let newState = Object.assign({}, state);
delete newState.c.y
але з деяких причин він видаляє майно обох держав.
Не могли б мені допомогти це зробити?
Object.assign
створює лише неповну копію зstate
і , отже ,state.c
іnewState.c
буде вказувати на той же об'єкт розділяється. Ви намагалися видалити властивістьy
із спільного об'єкта,c
а не з нового об’єктаnewState
.