2017-05-09 70 views
1

我有一個數組元素,這是在一個動作內更新的,現在我想在商店中更新它。目前,我有這樣的:替換數組內的對象 - Reducer

navigation 
|_navigationItems:[{1:"foo"}, {2:"bar"}, {3:"foobar"}] 

的事情是我做了以下內容:

case types.UPDATE_NAVIGATION: 
    return Object.assign({}, state, { 
    navigationItems: action.payload.items, 
    }); 

其中的項目是:[{1:"zoo"}, {2:"foobar"}]

但店裏沒有更新成功地。

我錯過了什麼嗎?

+0

越來越觸發你的行動。你可以在這個case語句中使用console.log(),看看你是否得到結果 –

+0

我在調用'case'之後放了一個'console.log()'並且在那裏我更新了數組。 – FacundoGFlores

+1

嘗試擴散運算符語法:'case types.UPDATE_NAVIGATION: return {... state,navigationItems:action.payload.items}' –

回答

1

陣營文檔建議使用蔓延運算符的語法在Object.assign

用途:

case types.UPDATE_NAVIGATION: 
    return { 
     ...state, navigationItems: action.payload.items 
    } 
+0

Object.assign應該爲你工作,你儘可能正確地做到了,盡我所能。 –

+0

你可以參考我的這個答案以及http://stackoverflow.com/questions/43376849/using-object-assign-in-react-redux-is-a-good-practice,提供更多信息。 –