删除 Angular NGXS 中的对象
Deleting an object in Angular NGXS
我在删除 post 上的评论时遇到问题。你会怎么做?我正在使用 Angular NGXS 状态管理。请看这个 link
onDeleteComment(commentId: number){
this.store.dispatch(new DeleteComment(commentId));
}
@Action(DeleteComment)
deleteComment(
ctx: StateContext<PostStateModel>,
{ commentId }: DeleteComment
) {
const state = ctx.getState();
const filteredArray = state.post.comments.find(
item => item.id === commentId
);
console.log(filteredArray);
}
约瑟夫,您似乎问了几个不同的问题,都与同一问题有关。我建议您跳转到 NGXS slack 频道并在那里提出更多问题:slack link.
但是要回答你的问题....
您的状态对象存在一些基本问题,但除此之外您应该能够 set/patch 您的状态:
@Action(DeleteComment)
deleteComment(
ctx: StateContext<PostStateModel>,
{ commentId }: DeleteComment
) {
const state = ctx.getState();
ctx.patchState({
post: {
...state.post,
comments: state.post.comments.filter(
comment => comment.id !== commentId
)
}
});
}
这是更新后的 stackblitz
需要注意的一件事,在 stackblitz 示例中,我将 angular 依赖项更新为最新版本...应该不会对动作处理程序(reducer)产生任何影响,它应该仍然有效。
我在删除 post 上的评论时遇到问题。你会怎么做?我正在使用 Angular NGXS 状态管理。请看这个 link
onDeleteComment(commentId: number){
this.store.dispatch(new DeleteComment(commentId));
}
@Action(DeleteComment)
deleteComment(
ctx: StateContext<PostStateModel>,
{ commentId }: DeleteComment
) {
const state = ctx.getState();
const filteredArray = state.post.comments.find(
item => item.id === commentId
);
console.log(filteredArray);
}
约瑟夫,您似乎问了几个不同的问题,都与同一问题有关。我建议您跳转到 NGXS slack 频道并在那里提出更多问题:slack link.
但是要回答你的问题.... 您的状态对象存在一些基本问题,但除此之外您应该能够 set/patch 您的状态:
@Action(DeleteComment)
deleteComment(
ctx: StateContext<PostStateModel>,
{ commentId }: DeleteComment
) {
const state = ctx.getState();
ctx.patchState({
post: {
...state.post,
comments: state.post.comments.filter(
comment => comment.id !== commentId
)
}
});
}
这是更新后的 stackblitz
需要注意的一件事,在 stackblitz 示例中,我将 angular 依赖项更新为最新版本...应该不会对动作处理程序(reducer)产生任何影响,它应该仍然有效。