У меня есть объект рабочей области, который определяется следующим образом:
export interface OneWorkspace {
id: number;
name: string;
roles: WorkspaceRole[]
users: WorkspaceUser[]
logs: WorkspaceLog[]
channels?: OneWorkspaceChannels
}
В объекте channels
есть 2 объекта: groups
и channels
export interface OneWorkspaceChannels {
channels: OneWorkspaceChannel[]
groups: OneWorkspaceGroup[]
}
export interface OneWorkspaceChannel {
id: number;
name: string;
}
export interface OneWorkspaceGroup {
id: number;
name: string;
channel: OneWorkspaceChannel[]
}
Когда пользователь создает новый канал или группу, я хочу добавить новый канал / группу в существующий объект рабочей области к соответствующему объекту в объекте каналов.В моем редукторе я получаю следующие значения для нового канала или новой группы:
newChannels: OneWorkspaceChannel[] | undefined,
newGroups: OneWorkspaceGroup[] | undefined
Я попытался сделать следующее в моем редукторе, но это не работает:
case getType(actions.CreateChannelGroup.success):
return {
...state,
createChannelGroupStatus: action.payload.CreateChannelGroupStatus,
createChannelMessage: action.payload.createChannelMessage,
workspace: {
...state.workspace,
channels: {
...state.workspace!.channels!,
channels: [...state.workspace!.channels!.channels!, action.payload.newChannels! ]
}
}
}
Как правильно добавить новый канал или группу в мой объект рабочего пространства?