I am using Redux. In my reducer I'm trying to remove a property from an object like this:
const state = {
a: '1',
b: '2',
c: {
x: '42',
y: '43'
},
}
And I want to have something like this without having to mutate the original state:
const newState = {
a: '1',
b: '2',
c: {
x: '42',
},
}
I tried:
let newState = Object.assign({}, state);
delete newState.c.y
but for some reasons, it deletes the property from both states.
Could help me to do that?
Object.assign
creates only a shallow copy ofstate
and thereforestate.c
andnewState.c
will point to the same shared object. You tried to delete propertyy
from the shared objectc
and not from the new objectnewState
. – Uncork