を使用して未定義のメソッドは、私はこのようないくつかのコードがあります:それはかなりうまく動作しますaddEventListenerを外部関数
addMarkerListener(){
document.querySelector('body').addEventListener('click', (event) => (this.handleMarkerListenerClick(event)));
}
handleMarkerListenerClick(event){
let target = event.target as HTMLElement;
if (target.tagName.toLowerCase() == "a" && target.className.startsWith("ver-mais-unidade")){
this.onViewUnidade();
}
}
を、私は、後でそのリスナーを削除する必要があるので、私はこのように私のハンドラを呼び出す必要があります:
addMarkerListener(){
document.querySelector('body').addEventListener('click', this.handleMarkerListenerClick);
}
handleMarkerListenerClick(event){
let target = event.target as HTMLElement;
if (target.tagName.toLowerCase() == "a" && target.className.startsWith("ver-mais-unidade")){
this.onViewUnidade();
}
}
問題は、その2番目のコードでは、 "this.onViewUnidade"が未定義です。 onViewUnidade
は私のコンポーネントの関数であり、最初のケースでうまく動作します。誰でも私が間違っていることを知っていますか?ありがとう!
あなたのコンストラクタで、 'this.handleMarkerListenerClick = this.handleMarkerListenerClick.bind(this);'と言う。 –