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