Quiero enviar datos de mi componente secundario a mi componente principal mediante los métodos Output() y EventEmitter. Sin embargo, parece que no se envía nada, a pesar de la función del emisor al ser golpeado en el componente secundario.
Mi componente hijo:
@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); }) }En el método startUpload() anterior, la respuesta 'url' se envía, sin embargo, parece que no sucede nada con 'this.urlStringEvent.emit(url);'
En mi componente principal (component.html):
<app-upload-task-training (showEvent)="receiveUrlString($event)"></app-upload-task-training>componente.ts:
receiveUrlString($event: any) { console.log($event); }No se registra nada en el evento $ como se ve arriba, ¿por qué podría ser esto?
Está emitiendo urlStringEvent pero en html está usando showEvent , tampoco funcionará, puede cambiar su html así
<app-upload-task-training (urlStringEvent)="receiveUrlString($event)"></app-upload-task-training>O
Cambia esto
@Output() urlStringEvent = new EventEmitter<string>();a esto
@Output('showEvent') urlStringEvent = new EventEmitter<string>();No nombró correctamente el evento en su html . Cambie el código html así:
<app-upload-task-training (urlStringEvent)="receiveUrlString($event)"></app-upload-task-training>