[英]Adding event listener for lit element component inside typescript
I've successfully added an eventlistener for my Lit element component inside my Typescript code:我已经成功地在我的 Typescript 代码中为我的 Lit 元素组件添加了一个事件监听器:
async firstUpdated() {
await this.updateComplete;
// Add an event listener to our event-search component so we can switch the current event
const eventSearch = document.querySelector('event-search');
if(typeof eventSearch !== 'undefined') {
eventSearch.addEventListener('select', this.changeCurrentEvent);
}
}
async changeCurrentEvent(event) {
await this.fetchTickets(event.id);
this.currentEvent = event;
}
async fetchTickets(eventId: number) {
try {
this.tickets = await fetchData(ticketEndpoint(eventId))
} catch (error) {}
}
However, when executing the event i get the following error:但是,在执行事件时,我收到以下错误:
Uncaught (in promise) TypeError: this.fetchTickets is not a function at HTMLElement.<anonymous>
Apparently it does land in the changeCurrentEvent
function but it cannot find the fetchTickets
function.显然它确实落在
changeCurrentEvent
函数中,但它找不到fetchTickets
函数。
You can use ES6 Arrow Function syntax to avoid having to write this.changeCurrentEvent.bind(this)
.您可以使用 ES6 箭头函数语法来避免编写
this.changeCurrentEvent.bind(this)
。
changeCurrentEvent = async (event) => {
await this.fetchTickets(event.id);
this.currentEvent = event;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.