在React JS中更新和对象嵌套数组



我在我的redux状态中具有当前的数据结构

const state = {
    chats: {
        id: "idhere",
        messages: [
            { 
               obj: "here" 
            },
            { 
               obj: "here" 
            },
        ]
    }
}

我想将结果从创建的动作返回到消息数组的末尾,而无需突变。我了解如果消息数组是国家的直接孩子,我将如何实现这一目标,但是由于它嵌套了,它已经完全抛出了我。

这就是我目前得到的方式,但是我正在使用推动,它感觉不对。

case GET_CHAT_MESSAGES:
    return { ...state, chats: { ...state.chats[action.id].messages: ...state.chats.[action.id].messages, action.payload }}

谢谢

这是以不变的方式做到这一点的方法:

const state = {
    chats : {
        id: "idhere",
        messages: [
            { 
               obj: "here" 
            },
            { 
               obj: "here" 
            },
        ]
    }
}
let newObj = {
   ...state,
   chats: {
     ...state.chats,
     messages:[...state.chats.messages, {obj:"new object"}]
   }
};

如果您知道了,则可以在还原器中调整它。

相关内容

  • 没有找到相关文章

最新更新