Używam Redux. W moim reduktorze próbuję usunąć właściwość z obiektu takiego:
const state = {
a: '1',
b: '2',
c: {
x: '42',
y: '43'
},
}
I chcę mieć coś takiego bez konieczności modyfikowania pierwotnego stanu:
const newState = {
a: '1',
b: '2',
c: {
x: '42',
},
}
Próbowałem:
let newState = Object.assign({}, state);
delete newState.c.y
ale z pewnych powodów usuwa właściwość z obu stanów.
Czy może mi w tym pomóc?
Object.assign
tworzy tylko płytkie kopię zstate
a zatemstate.c
inewState.c
będzie wskazywać na ten sam obiekt udostępniony. Próbowałeś usunąć właściwośćy
z udostępnionego obiektu,c
a nie z nowego obiektunewState
.