Reactjs 使用initialState中的对象进行React-Redux

Reactjs 使用initialState中的对象进行React-Redux,reactjs,redux,state,Reactjs,Redux,State,我有一个用ReactJS编写的聊天应用程序。我想制作一个redux函数,将其添加到聊天和消息列表中。很难解释,但代码是这样的。这是代码的缩短版本。我删除了许多不相关的东西,这样代码就更容易阅读 import { CHAT_UPDATE } from '../actions/types' const initialState = { conversations: { "jack": [ { "sender":

我有一个用ReactJS编写的聊天应用程序。我想制作一个redux函数,将其添加到聊天和消息列表中。很难解释,但代码是这样的。这是代码的缩短版本。我删除了许多不相关的东西,这样代码就更容易阅读

import {
    CHAT_UPDATE
} from '../actions/types'

const initialState = {
    conversations: {
        "jack": [
            {
                "sender": "jack",
                "text": "This is hard coded",
                "date": "00:00:00 MN | May 5"
            },
            {
                "sender": "administrator",
                "text": "Noted",
                "date": "00:00:01 AM | May 5"
            }
        ]
    }
}

export default (state = initialState, action) => {
    switch (action.type) {
        case CHAT_UPDATE:
            return {
                ...state,
                conversations: {
                    // HELP
                }
            }
        default:
            return state
    }
}
如何实现更新功能,以便在发送了包含请求的聊天信息和新消息的
CHAT\u update
操作时,将其添加到会话列表中

例如,当发送时:

dispatch({
    type: CHAT_UPDATE,
    name: 'jack',
    coversation: {
        "sender": "jack",
        "text": "How's your day?",
        "date": "00:00:02 AM | May 5"
    }
})
我希望新的国家是

conversations: {
    "jack": [
        {
            "sender": "jack",
            "text": "This is hard coded",
            "date": "00:00:00 MN | May 5"
        },
        {
            "sender": "administrator",
            "text": "Noted",
            "date": "00:00:01 AM | May 5"
        },
        {
            "sender": "jack",
            "text": "How's your day?",
            "date": "00:00:02 AM | May 5"
        }
    ]
}

您应该以这种方式更新它

return {
 ...state,
 [
   ...state[action.name],
   action.coversation,
 ]
}

您应该以这种方式更新它

return {
 ...state,
 [
   ...state[action.name],
   action.coversation,
 ]
}
这会有用的

return {
    ...state,
   conversations: {
       ...state.converstation,
       [action.name]: [
           ...state.converstation[action.name],
           {
               ...action.coversation
           }
       ]
   }
}
这会有用的

return {
    ...state,
   conversations: {
       ...state.converstation,
       [action.name]: [
           ...state.converstation[action.name],
           {
               ...action.coversation
           }
       ]
   }
}

或者您可以执行[action.name]:[…state.conversation[action.name],action.conversation]或者您可以执行[action.name]:[…state.conversation[action.name],action.conversation]