繁体   English   中英

为什么从父组件发出后子组件中的值没有改变?

[英]Why value in child component is not changed after emit from parent?

我在子组件内部有一个父组件view-event-component组件:

<app-visitor-component (message)="message($event)" [_event]="event"></app-visitor-component>

view-event-component里面有:

  public dataFromChild: any;

  message($event) {
      console.log($event);
      this.dataFromChild = $event;
  }

模板view-event-component是:

{{ dataFromChild }}

因此,当我使用@Output将数据从父级推送到子级时,我总是会收到消息:

message($event) {
   console.log($event);
}

但是变量没有在模板中显示(渲染):

{{ dataFromChild }}

没有错误和警告。

我使用最新版本的 Angular 和 Mozilla Firefox

如果你有:

changeDetection: ChangeDetectionStrategy.OnPush

手动触发changeDetection:

constructor(cd: ChangeDetectorRef) {}

triggerDetecton():void {
    this.cd.detectChanges();
}

您还应该提供 StackBlitz 以帮助我们更好地理解

在孩子身上试试这样:

message= new EventEmitter<Object>();
messagefunction(event) {
    this.messageEvent.emit(event);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM