typescript - Angular 6 - får undefined, når der sendes data til klassevariabel
Jeg har en service, og inden i konstruktøren kører jeg en metode for at hente nogle data. Jeg kan se dataene, så derefter videregiver jeg dem til en foruddefineret variabel.
Sådan her:
export class SentinelService {
configuration;
constructor() {
this.electronService.ipcRenderer.on('config' , function(event , data) {
this.configuration = data; // pass the data to configuration variable
console.log(this.configuration.name); // Check it ... I can see the value here
});
}
myMethod() {
// Try it here
console.log(this.configuration.name); // I get Undefined
};
...
Selvom jeg har tildelt værdien til 'configuration'-variablen og kan se, at den er blevet videregivet fra metoden inde i konstruktøren, får jeg 'undefined', når jeg prøver det samme på en anden metode.
Hvordan kan jeg rette dette?
Svar #1
Brug en arrow-funktion som din callback for at bevare klassens omfang:
this.electronService.ipcRenderer.on('config' , (event , data) => {
this.configuration = data;
...
Se også på dette for at forstå, hvorfor normale funktioner og pilefunktioner er forskellige.
