在Ngrx reducer函数中将数据添加到状态



我正在学习前端,并尝试使用NgRx制作一个用于状态管理的Angular应用程序。

我有一张信息表。我想删除并添加要存储的邮件。我可以使用reducer函数删除行,如下所示。

function RemoveHandler(state: StoreMessages, action) {
return {
...state,
selections: state.selections.filter(messageId => messageId !== action.messageId),
messages: state.messages.filter(item => item.messageId !== action.messageId),
all: state.all.filter(item => item.messageId !== action.messageId)
};
}

这很好,但我添加消息功能的逻辑不起作用。

function AddHandler(state: StoreMessages, action) {
return {
...state,
messages: state.messages.push(action.newMessage),
all: state.all.push(action.newMessage)
};
}

问题是pop方法返回数组的长度,因此长度被分配给我的状态的"messages"one_answers"all"属性。如何将新邮件添加到我的状态。感谢您的帮助。

您不需要reducer中的array.prush方法。第一个代码有效,因为您正在筛选处于状态的数组。要将数据添加到状态,只需像一样进行分配

function AddHandler(state: StoreMessages, action) {
return {
...state,
messages: action.newMessage,
all: action.newMessage
};
}

或者如果您要插入阵列

function AddHandler(state: StoreMessages, action) {
return {
...state,
messages: [...action.newMessage],
all: [...action.newMessage]
};
}

最新更新