javascript 在Redux中向字典添加键/值

x4shl7ld  于 2023-03-11  发布在  Java
关注(0)|答案(2)|浏览(89)

我正在学习Redux,但在尝试弄清楚如何向字典添加密钥对时遇到了麻烦:

//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
    }
  });
}

我做错了什么?还在想怎么不让状态变异。

0g0grzrc

0g0grzrc1#

您需要使用对象文本的计算属性名称(使用[]):

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

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

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

i5desfxk2#

虽然我们可以在redux中存储Map,但不推荐使用https://github.com/reduxjs/redux/issues/1499

相关问题