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
}
}
verwenden Haben Sie Tippfehler? Sie können nicht 2 Schlüssel mit dem gleichen Wert wie Ihre 'prop' Attribute haben –
wir müssen mehr Code sehen – hairmot