【发布时间】:2018-07-02 09:00:23
【问题描述】:
@Component({
mixins: [template],
components: {
Sidebar
}
})
export default class AppContentLayout extends Vue {
@Prop({default: 'AppContent'})
heading: string;
@Watch('$route')
beforeRouteUpdate (to: Object, from: Object, next: Function) {
// react to route changes...
// don't forget to call next()
Logger.log(to)
Logger.log(from)
next();
}
}
基于docs,beforeRouteUpdate 应该收到to、from 和next。但是,对我来说,next 始终是未定义的,无论我使用 a property decorator 中的 watch 选项还是将其添加到 @component 中的 mixins 时。两者都在调用钩子时起作用,但下一个始终是undefined。我想也许next 仅在通过时才被定义,但文档状态:
确保总是调用下一个函数,否则钩子永远不会被解析。
这就是为什么我假设它也始终存在。我猜如果它只有在通过时才存在,那么简单
if(isFunction(next)) next()
所以我真正要问的是:next 是否仅在显式传递时可用?
【问题讨论】:
标签: typescript vue.js vuejs2 decorator vue-router