有没有什么聪明的方法可以在ngrx角度应用程序中保持以前的减速器状态



首先让我向您介绍这个问题的概述。

在我正在开发的应用程序中,有一个注释功能。我把所有的评论放在一个数组中。一旦其中一个被创建/更新/删除,套接字就会让所有用户知道它发生了,并且reducer通过更改以前的状态数组并返回新的状态数组来处理传入的信息。

每个注释都可能有多个答案(一级深度(,它们作为父注释的数组属性从后端返回。创建/更新/删除对注释的回答会导致父级上的更新操作,因此由后端处理,并导致套接字传入所有用户并更改他们的所有注释数组。

现在是视图部分:注释显示为父注释列表,当用户想要显示/更新/删除/创建答案时,他们会单击一个显示所有答案的按钮,并允许他们执行所需的操作。您可能会发现,对答案执行的任何操作都会刷新整个父注释列表。由于评论组件默认设置为隐藏其答案,因此创建新的回复会立即对用户隐藏,迫使用户重新打开答案框。

这是一个不可取的结果,我现在正在努力解决。我知道这听起来可能像是我在与不变性的概念作斗争,但也希望你们中的一些人能给我一些聪明的想法,告诉我如何以恰当而优雅的方式解决这样一个问题。

提前感谢的所有帮助

正如其他人在评论中告诉你的那样,如果没有实际的代码,很难知道发生了什么,但根据你所说的,我敢打赌你应该在*ngFor上使用trackBy。

使用trackby的想法是让ngFor知道,即使对象确实发生了更改,根据id/index/您决定跟踪的任何内容,它也可能是相同的,并避免重新创建DOM。

最新更新