Output 和 EventEmtiter 不发送任何数据

Output and EventEmtiter not sending any data

我想使用 Output() 和 EventEmitter 方法将数据从我的子组件发送到我的父组件。然而,尽管发射器在子组件中被击中,但似乎没有任何东西被发送?

我的子组件:

@Output() urlStringEvent = new EventEmitter<string>();

ngOnInit(): void {
    this.startUpload();
  }

startUpload() {
    // Unrelated Code Above ^^^^
    // Assign URL's to Array
    this.task.snapshotChanges().pipe(
      last(),
      switchMap(() => ref.getDownloadURL())
    ).subscribe(url => {
      this.urlStringEvent.emit(url);
    })
  }

在上面的 startUpload() 方法中,发送了 'url' 响应,但是 'this.urlStringEvent.emit(url);'

似乎没有任何反应

在我的父组件中(component.html):

<app-upload-task-training (showEvent)="receiveUrlString($event)"></app-upload-task-training>

component.ts:

receiveUrlString($event: any) {
    console.log($event);
  }

如上所示,$event 中没有记录任何内容,这是为什么?

你正在发射 urlStringEvent 但在 html 中你使用 showEvent,它不会工作你可以像这样改变你的 html

<app-upload-task-training (urlStringEvent)="receiveUrlString($event)"></app-upload-task-training>

改变这个

@Output() urlStringEvent = new EventEmitter<string>();

至此

@Output('showEvent') urlStringEvent = new EventEmitter<string>();

您没有在 html 中正确命名 事件 。像这样更改 html 代码:

<app-upload-task-training (urlStringEvent)="receiveUrlString($event)"></app-upload-task-training>