2017-08-11 307 views
0

我学习终极版,并有麻烦试图找出如何将密钥对添加到字典中添加一个键/值字典:在终极版

//Page Dictionary  
{ 
    randomId1: { aPageObj }, 
    randomId2: { aPageObj }, etc 
} 

我想这个但这并不工作

//action 
export function addPage(pageId, pageObj) { 
    return { type: types.ADD_PAGE, pageId, pageObj }; 
} 

//reducer 
case types.ADD_PAGE: { 
    return Object.assign({}, state, { 
    pages: { 
     ...state.pages, action.pageId: action.pageObj 
    } 
    }); 
} 

我在做什么错?仍在试图弄清楚如何发生变异的状态..

回答

4

您需要使用对象字面量(用[])的computed property name

pages: { 
    ...state.pages, [action.pageId]: action.pageObj 
} 

此外,如果你可以使用对象spreas语法,可以省略Object.assign ,例如:

return { 
    ...state, 
    pages: { 
    ...state.pages, [action.pageId]: action.pageObj 
    } 
} 
+0

ARGH就是这样吗?感叹。 – user1189352

+0

啊我喜欢那个编辑..我一直在使用Object.assign的一切...... ty – user1189352

+0

欢迎您:) – madox2