Я пытался выяснить, как использовать оператор select в сочетании с другими операторами rxjs для запроса структуры данных дерева (нормализованной в хранилище до плоского списка) таким образом, чтобы он сохранял ссылочную целостность для ChangeDetectionStrategy.OnPush, но мои лучшие попытки приводят к тому, что все дерево будет отменено, когда какая-либо часть дерева изменится. У кого-нибудь есть идеи? Если вы рассматриваете следующий интерфейс как представитель данных в хранилище:
export interface TreeNodeState {
id: string;
text: string;
children: string[] // the ids of the child nodes
}
export interface ApplicationState {
nodes: TreeNodeState[]
}