2017-08-17 1 views
0

Ich versuche, eine Immobilie zu meinem Zustand currentDrink hinzuzufügen:Eigenschaft hinzufügen in Minderer zum Objekt

{ 
    currentDrink: { 
     ...action.payload 
    }, 
    ...state 
} 

ich mein Zustand sein möchte: nur

currentDrink: { 
    prop: 1, 
    prop: 2, 
    ...etc 
}, 

Mein Zustand eine Eigenschaft jeder enthält .

+0

verwenden Haben Sie Tippfehler? Sie können nicht 2 Schlüssel mit dem gleichen Wert wie Ihre 'prop' Attribute haben –

+0

wir müssen mehr Code sehen – hairmot

Antwort

0

Das Problem sehr trivial ist, in dem die Reihenfolge der Spread Operator-Syntax verwendet wird, entscheidet das Endergebnis

So

{ 
    currentDrink: { 
     ...action.payload 
    }, 
    ...state 
    } 

verschieden von

{ 
    ...state, 
    currentDrink: { 
     ...action.payload 
    } 
    } 

Im ersten Fall Wenn der Status bereits currentDrink Eigenschaft enthält, wird Ihre benutzerdefinierte Änderung an currentDrink mit den Status eins überschrieben.

In der zweiten Sekunde überschreibt das benutzerdefinierte currentDrink-Objekt, falls vorhanden, das, was im Status vorhanden ist.

jedoch
currentDrink: { 
    ...action.payload 
} 

wird denaturiert, action.payload und weist es currentDrink und außer Kraft setzen, was auch immer in dem currentDrink Objekt im Zustand vorlag.

Sie sollten wahrscheinlich

{ 
    ...state, 
    currentDrink: { 
     ...state.currentDrink, 
     ...action.payload 
    } 
} 
+0

Haben Sie eine Chance bekommen, diese Antwort auszuprobieren. Lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben –

Verwandte Themen