Vue und vue-Immobilien-Dekorateur. TS-Fehler im BeforeRouteUpdate-Hook
Umriss
Ich schreibe eine Anwendung mit Vue 2/Typescript und Vue-Property-Decorator. In meiner Komponente verwende ich beforeRouteEnter/beforeRouteUpdate-Hooks. Meine Komponente hat die Methode findProjects, und ich möchte diese Methode in meinem beforeRouteUpdate- Hook aufrufen.
Meine Komponente:
import { Component, Vue, Mixins, Watch } from 'vue-property-decorator'
...
export default class ProjectSandboxTs extends Mixins(GlobalFilterMixin({})) {
created() {...
}
clearInput() {...
}
findProjects() {
const filter: IFilter = { ...this.modalFilterValues, ...this.filterValues }
this.filterProjects(filter)
this.displayProjects()
this.isEmpty = this.filteredData.length === 0
}
filterProjects(filter: IFilter) {...
}
Aber wenn ich versuche, die Methode der Komponente in meinem Hook aufzurufen, erhalte ich einen Schreibfehler: Eigenschaft „findProjects“ existiert nicht auf Typ „Vue“.
beforeRouteUpdate(to, from, next) {
if (!isEqual(to.query, from.query)) {
this.findProjects() // <== Property 'findProjects' does not exist on type 'Vue'
}
next()
}
Irgendwelche Ideen, wie man es repariert?
Adam Orłowski
Dies liegt daran, dass Typoskript nicht weiß, um welche Art von Instanz this
es sich handeln wird. Versuchen Sie so etwas:
(this as ProjectSandboxTs).findProjects()