2017-08-17 106 views
0

我試圖將屬性添加到我的狀態currentDrink反對:添加屬性在減速

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

我想我的狀態是:

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

我的狀態只有每一個包含一個屬性。

+0

你有沒有錯別字?你不能有像'prop'屬性那樣的相同值的2個鍵 –

+0

我們需要看到更多的代碼 – hairmot

回答

0

問題很瑣碎,其中使用的擴展運算符的語法順序判定最終結果

所以

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

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

不同在第一種情況下, ,如果狀態已經包含,currentDrink屬性它將您的自定義更改爲currentDrink將被覆蓋狀態之一。

在第二秒鐘的情況下,自定義currentDrink對象將覆蓋狀態中存在的內容(如果有的話)。但是

currentDrink: { 
    ...action.payload 
} 

將解構action.payload並將其分配給currentDrink並覆蓋currentDrink對象處於狀態的任何內容。

你應該使用

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

你有機會嘗試這個答案。如果您遇到任何問題,請告訴我 –