简短..我试图在字典的所有对象中编辑属性(选中)..但无论我做什么,我都会改变状态。有人可以向我解释如何做到以及为什么我的工作无效?
我有这个状态:
{
pageDict = {
someId1: { prop1: prop1value, prop2: prop2value}, etc
someId2: { prop1: prop1value, prop2: prop2value}, etc
},
playlistIndex: 0,
playlists: [ somePlaylistId1, somePlaylistId2, etc ],
playlistDict: {
somePlaylistId1: { prop1: prop1Value, pages: [ someId1, someId2 ], etc }
somePlaylistId2: { prop1: prop1Value, pages: [ someId1, someId2 ], etc }
}
}
我有这个减速器功能:
case types.SET_SINGLE_PAGE_SELECT: {
let pageDictCopy = Object.assign( {}, state.pageDict );
let activePlaylistId = state.playlists[ state.playlistIndex];
let activePlaylist = state.playlistDict[ activePlaylistId ];
for ( let pageId of activePlaylist.pages ) {
let page = pageDictCopy[ pageId ];
page.selected = ( pageId == action.pageId );
}
return Object.assign({}, state, {
pageDict: pageDictCopy
});
}
编辑:我也有不变的助手