如果输入带有 observable,则检测 ngOnChanges 中 SimpleChanges 的变化

问题描述 投票:0回答:1

在 Angular 中,我通常使用 ngOnChanges 来检测父组件发生了什么变化。

但是现在,当声明如下时我感到困惑:

  @Input() data: Observable<Student>;

在 ngOnChanges 方法中:

ngOnChanges(changes: SimpleChanges): void {
    if (changes.data?.currentValue) {
      // code here
    }
  }

在这段代码中,我想将数据(从 API 获取的数据)从父级传递给子级。在 Child 中,我将订阅数据以绑定到布局。

我在这里想要的是,当 Parent 发生任何变化时,Child 应该监听并使用新数据重新绑定到布局。

但是数据是可观察类型,代码'changes.data?.currentValue'可以知道它什么时候发生变化吗?

请指教

angular ngonchanges
1个回答
0
投票
每当父组件的输入值发生变化时,都会调用

ngOnChanges。为了在 Observable 发出新值时触发更改,您需要从父组件订阅 observable 并将发出的值传递给子组件。

这可以按如下方式完成:

父组件模板

子组件

@Input() 数据:学生;

© www.soinside.com 2019 - 2024. All rights reserved.