动态追加对象

时间:2018-01-13 21:42:47

标签: javascript object ecmascript-6

我正在构建一个聊天应用程序,其中包含对话和消息,这些对话和消息存储为相应的对象。消息根据它们所属的对话进行捆绑。因此,当我推送消息时,他们会被推送到他们的会话ID中。

我有以下实现:

allMsgs = {
    ...allMsgs,
    [payload.conversationId]: {
        ...payload.message 
    }
}

我可以将消息添加到各自的对话中并将其分类,但不能将消息捆绑在一起。最后一条消息总是覆盖每个conversationId的内容 - 这些消息。所以我留下allMsgs有多个conversatinIds但每个conversationId中有一条消息。这看起来像是一件事,但我似乎无法弄明白。

1 个答案:

答案 0 :(得分:0)

原来是一件事

state.allMsgs = {
    ...state.allMsgs,
    [payload.conversationId]: {
        ...state.allMsgs[payload.conversationId],
        [payload.message.id]: payload.message
    }
}