#typescript #vue.js #class
Вопрос:
Я пытаюсь создать класс в Vue, который использует функцию наблюдения из Vue. Я хочу передать идентификатор местоположения из конструктора. Но это не работает … как я могу получить доступ к идентификатору?
import { watch } from 'vue';
import type { ComputedRef } from "vue";
export class DateWatcher {
// true/false
dateChange: ComputedRef;
// 123456789
locationId: string | string[];
constructor(dateChange: ComputedRef, locationId: string | string[]) {
this.dateChange = dateChange;
this.locationId = locationId;
}
watchFunction(): void {
console.log(`I watch ${this.dateChange}`);
console.log(this.locationId);
const id = this.locationId;
watch(this.dateChange, function () {
console.log('Changed');
console.log('locationId');
console.log(this.locationId);
});
}
}
Я называю это из свойства Vue:
const dateWatcher = new DateWatcher(dateChange, locationId)
dateWatcher.watch()