Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

307
Visualizações
Use la variable del componente principal, en su método que es invocado por un componente secundario

Estoy usando un componente hijo:

 <app-photo-editor [addPhotoUrlExtension]="'users/add-photo'" [onUploadSuccess]="onUploadPhotoSuccess" [deletePhoto]="onDeletePhoto"></app-photo-editor>

y pasándole la función onUploadPhotoSuccess:

 onUploadPhotoSuccess(response: any) { if (response) { const photo = JSON.parse(response); this.member.photoUrl = photo.url; // offending line ...

En el componente secundario, acepto la función e invoco la función principal:

 export class PhotoEditorComponent implements OnInit { @Input() onUploadSuccess: (response: any) => void;

...

 this.uploader.onSuccessItem = (item, response, status, headers) => { if (response) { this.onUploadSuccess(response); } }

Esto da un error en la línea ofensiva (marcada arriba), diciendo:

 core.js:6498 ERROR TypeError: Cannot set properties of undefined (setting 'photoUrl') at PhotoEditorComponent.onUploadPhotoSuccess [as onUploadSuccess] (member-edit.component.ts:67:27) at FileUploader.uploader.onSuccessItem (photo-editor.component.ts:60:14) at FileUploader._onSuccessItem (ng2-file-upload.js:1326:1) at XMLHttpRequest.xhr.onload [as __zone_symbol__ON_PROPERTYload] (ng2-file-upload.js:1073:29) at XMLHttpRequest.wrapFn (zone.js:763:1) at ZoneDelegate.invokeTask (zone.js:406:1) at Object.onInvokeTask (core.js:28679:1) at ZoneDelegate.invokeTask (zone.js:405:1) at Zone.runTask (zone.js:178:1) at ZoneTask.invokeTask [as invoke] (zone.js:487:1)

Lo que significa que this.member no está definido, ahora, por un lado, tiene sentido, habría tenido que pasarlo al componente secundario, pero, por otro lado, CREO que esto funcionó como está ... Así que no estoy seguro de cuál es el correcto. solución..

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto se debe a que está pasando una función regular a otro componente y, por lo tanto, this palabra clave no se refiere al componente original.

Debe usar funciones de flecha para onUploadPhotoSuccess o this .

 onUploadPhotoSuccess = (response: any) => {
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda