Estoy usando Angular y llamo a otra función que hace una llamada a la API para verificar algo. Cuando llamo a la función, ¿¡ esto dentro no está definido!? ¿Por qué sería esto? y como lo soluciono? ¿La llamada de mi función de flecha es incorrecta?
Esta es la función que está llamando a arrowFunc
onProductChanged(event) { this.arrowFunc(hasRangeConfigurations => { console.log("do something"); }) }Esta es la función a la que llama lo anterior, "esto" no está definido en la declaración const en este punto, pero en lo anterior es una referencia a mi componente angular.
arrowFunc(action: (hasRangeConfigurations: boolean) => void) { const criteria = { brandId: this.marketingRange?.brand?.id, pageNumber: 1, pageSize: 1, } as Myresults // extra code here });Curiosamente, esto existe fuera de la const, pero dentro de la const no está definido.
-- ACTUALIZAR mi solución--
Mucho antes de que te des cuenta, alguien borra tu pregunta y te remite a otra cosa que es confusa.
Como no puedo hacer una pregunta legítima a medida que se elimina, lo resolví de esta manera, solo asignándome esto a mí mismo (como lo había hecho en los días de jquery/javascript). No sé si esta es la mejor solución, ¡pero hey hoo!
arrowFunc(action: (hasRangeConfigurations: boolean) => void) { const self = this; const criteria = { brandId: self.marketingRange?.brand?.id, pageNumber: 1, pageSize: 1, } as Myresults // extra code here });