我在我的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"}]
}
};
如果您知道了,则可以在还原器中调整它。