首页 > 解决方案 > 角度替换组件

问题描述

有一种情况是数据是从两个不同的组件发送的;假设OneComponent并且TwoComponent有一个ResultComponent通过Input()装饰器接收这些数据。此外,在ResultComponent数据中使用OnChanges接口合并:

  ngOnChanges(changes: SimpleChanges) {
    if (changes['dataFromCompTwo']) {
      this.dataFromComp = this.dataFromCompTwo;
    }
  }

和数据显示在这个组件中,但组件被实例化了两次,数据是双倍的。如何检查数据是否已从其中一个组件发送并仅显示最后发送的数据?

STACKBLITZ => 我想只显示一次结果

标签: angulartypescriptangular-componentsngonchanges

解决方案


这是组件间的通信。您应该使用此 Angular 文档页面中描述的技术之一。

我个人倾向于通过服务进行通信,因为组件根本不耦合:通信方法不依赖于它们包含在 DOM 中,因此您可以随意移动它们,它不会中断。


推荐阅读