Как уже упоминалось в комментариях других, вероятным виновником является то, что this
не то, что вы ожидаете в функции.
Если у вас есть такой класс:
class Foo {
public myValue: number;
constructor() { this.myValue = 0; }
barOne() { console.log(this.myValue); }
barTwo = () => { console.log(this.myValue); }
}
, то barOne
и barTwo
будут вести себя по-разному, когда используются обратные вызовы задницы объектом, внешним по отношению к классу.
Это тот случай, когда используется метод экземпляра класса в качестве обратного вызова для кнопки, как в вашем случае.
Полезно углубиться в то, как this
работает в javascript и typcript (javascript ведет себя так же, как typcript, если доступен ecmascript 6), и есть много хороших статей об этом.
Но простое решение состоит в том, чтобы использовать «функции стрелок», как я это делал с методом barTwo
, описанным выше.