小编Osm*_*Cea的帖子

@ngrx在递归使用智能组件时从商店中选择特定的状态切片

我是新手ngrx,我遇到了这个小问题,我还没弄明白如何解决.

基本上我有一个从商店ListComponent渲染一个ListItemComponents 数组ngrx.

@Component({ 
  ...
  template: `
    <list-item *ngFor="let item of item$ | async" [data]="item">
    </list-item>
  `
})
export class ListComponent implements OnInit {
  item$: Observable<ListItem>;
  constructor(private store: Store<ListState>) {}

  ngOnInit() {
    this.item$ = this.store.select(selectListItems);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,在内部ListItemComponent,在某些特定情况下,我想渲染另一个ListComponent我可以添加项目的地方,但是这不起作用,因为我收到Maximum call stack size exceeded错误.

我的猜测是,如果我错了,请纠正我,因为嵌套ListComponent是访问与根相同的状态切片ListComponent,它只是试图嵌套并一遍又一遍地渲染相同的列表到无穷大.

所以这就是问题,我应该如何组合我的选择器,以便在状态树中为每个嵌套提供正确的入口点ListComponent


编辑

这是一个有效的stackblitz项目,现在我的应用程序中渲染List内部的逻辑ListItem是不同的,但问题是相同的.

rxjs typescript ngrx angular ngrx-store

10
推荐指数
1
解决办法
662
查看次数

标签 统计

angular ×1

ngrx ×1

ngrx-store ×1

rxjs ×1

typescript ×1