刪除元素我有一個狀態對象,看起來像這樣:從一個嵌套的數組,而無需使用不變性助手
//State Object
playlistDict: {
someId1: {
active: false,
id: 'someId',
name: 'someName',
pages: [ 'pageId1', 'pageId2', 'pageId3', etc ] // I want to remove an element from this array
},
someId2: {
active: false,
id: 'someId2',
name: 'someName2',
pages: [ 'pageId11', 'pageId22', 'pageId33', etc ] // I want to remove an element from this array
}
}
我想寫一個減速,消除給刪除沒有索引頁面元素使用不變性幫手。
這就是我想要做的,但我的語法是關閉的,我不知道什麼是寫減速的正確方法:
export function _removePageFromPlaylist(playlistId, pageIndex) {
return { type: types.REMOVE_PAGE_FROM_PLAYLIST, playlistId, pageIndex };
}
case types.REMOVE_PAGE_FROM_PLAYLIST: {
let playlistCopy = Object.assign({}, state.playlistDict[ action.playlistId ]);
playlistCopy.pages = Object.assign({}, state.playlistDict[ action.playlistId ].pages);
playlistCopy.pages.splice(action.pageIndex, 1);
return Object.assign({}, state, {
playlistDict: { ...state.playlistDict, playlistDict[ action.playlistId ]: playlistCopy } // doesn't like this syntax in particular
});
}
編輯:在關於人的思維是相同的作爲我的另一個問題,我問這個問題,因爲我試圖弄清楚我的Reducer USING不可變性助手是否搞亂了我的Firebase數據庫,所以我想弄清楚如何使用不可變性助手來編寫reducer我可以幫助消除我的錯誤。
[卸下在嵌套數組的元素,但火力地堡轉彎陣列成的可能的複製對象(https://stackoverflow.com/questions/45930388/removing-an-element-in-a-nested-array-but-firebase-is-turning-the-array-into-an) – Panther
@Panther以及我問這個問題,因爲我想,如果我的減速器使用不可改變的幫手是搞亂米至弄清楚Ÿ火力地堡的數據庫,所以我試圖找出如何寫減速離不開它。 – user1189352