0

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

点击这个链接

 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);
  }
4

1 回答 1

0

约瑟夫,看起来你已经问了几个与同一问题有关的不同问题。我建议您跳上 NGXS 松弛频道并在那里提出更多问题:松弛链接

但是要回答你的问题......你的状态对象有一些基本问题,但除了那些你应该能够设置/修补你的状态:

@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 示例中,我将 angular 依赖项更新到了最新版本......不应该对动作处理程序(reducer)产生任何影响,它应该仍然可以工作。

于 2019-11-23T14:50:39.400 回答