删除 Angular NGXS 中的对象

Deleting an object in Angular NGXS

我在删除 post 上的评论时遇到问题。你会怎么做?我正在使用 Angular NGXS 状态管理。请看这个 link

CLICK THIS 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)产生任何影响,它应该仍然有效。