Существующий ответ Cétia правильно определяет проблему - вы регистрируете обработчик щелчков с помощью анонимной функции, но затем пытаетесь отменить регистрацию именованной функции - однако я хотел бы предоставить альтернативное решение.
Я вижу, что вы используете анонимную функцию в качестве прослушивателя кликов, я предполагаю, что это исправляет контекст this
для выполнения pingIfLastPingIsOld
. Это также можно сделать с помощью метода .bind
.
constructor() {
this.pingIfLastPingIsOld = this.pingIfLastPingIsOld.bind(this);
}
activateListener() {
window.addEventListener('click', this.pingIfLastPingIsOld);
}
deactivatelistener() {
window.removeEventListener('click', this.pingIfLastPingIsOld);
}
Независимо от того, откуда вызывается pingIfLastPingIsOld
, теперь он будет выполняться с компонентом в качестве значения this
.
Документация