Vue 和 vue-属性-装饰器。 beforeRouteUpdate 挂钩中的 TS 错误
Vue and vue-property-decorator. TS error in beforeRouteUpdate hook
我正在使用 Vue 2/typescript 和 vue-属性-decorator 编写应用程序。在我的组件中,我使用 beforeRouteEnter/beforeRouteUpdate 钩子。我的组件有方法 findProjects,我想在我的 beforeRouteUpdate 挂钩中调用这个方法。
我的组件:
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) {...
}
但是当我尝试在我的钩子中调用组件的方法时,我得到了打字稿错误:
属性 'findProjects' 在类型 'Vue'
上不存在
beforeRouteUpdate(to, from, next) {
if (!isEqual(to.query, from.query)) {
this.findProjects() // <== Property 'findProjects' does not exist on type 'Vue'
}
next()
}
有什么解决办法吗?
这是因为打字稿不知道 this
实例的类型。尝试这样的事情:
(this as ProjectSandboxTs).findProjects()
我正在使用 Vue 2/typescript 和 vue-属性-decorator 编写应用程序。在我的组件中,我使用 beforeRouteEnter/beforeRouteUpdate 钩子。我的组件有方法 findProjects,我想在我的 beforeRouteUpdate 挂钩中调用这个方法。
我的组件:
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) {...
}
但是当我尝试在我的钩子中调用组件的方法时,我得到了打字稿错误: 属性 'findProjects' 在类型 'Vue'
上不存在beforeRouteUpdate(to, from, next) {
if (!isEqual(to.query, from.query)) {
this.findProjects() // <== Property 'findProjects' does not exist on type 'Vue'
}
next()
}
有什么解决办法吗?
这是因为打字稿不知道 this
实例的类型。尝试这样的事情:
(this as ProjectSandboxTs).findProjects()