0
我只想問,爲什麼我的reducer不斷重寫我的嵌套數據,即使值是一個數組。基本上我在這裏建立的就像一個分頁。到目前爲止,這裏是我的代碼:在分頁縮減器中追加數據 - answersjs
const INITIAL_STATE = {
data: [],
page: 1
};
export default (state = INITIAL_STATE, action) => {
switch(action.type) {
case GET_NEWS_SUCCESS: {
return {
data : {
[action.payload.category]: [ action.payload.data ]
},
page: action.payload.page };
}
}
return state;
}
下面的圖片是我減速的返回數據,基本上就echelon array
下一個狀態0
關鍵應該還是在那裏,將追加另一組數據。但正如您在第二個紅色矩形上所看到的,它將覆蓋先前的0
鍵。
我已經試過這個,它給了我一個'不能將undefined或null轉換爲對象'的錯誤。也許是因爲這個'... state.data [action.payload.category]',因爲'action.payload.category'還沒有存在 –
所以你必須檢查它是否在更新之前被定義,如果沒有被初始化空陣列。請參閱最新的答案。如果您已經知道所有可能的類別名稱,則可以使用空類別數組初始化狀態,而不是在每次更新時檢查它。 –
我會試試這個,因爲它是從api中獲取的,所以該類別是未知的。 –