Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未使用Typescript在组件中触发Vue路由器挂钩_Javascript_Typescript_Vue.js_Vue Component_Vue Router - Fatal编程技术网

Javascript 未使用Typescript在组件中触发Vue路由器挂钩

Javascript 未使用Typescript在组件中触发Vue路由器挂钩,javascript,typescript,vue.js,vue-component,vue-router,Javascript,Typescript,Vue.js,Vue Component,Vue Router,这让我困惑了一段时间。我已经搜索了很多,但仍然不知道为什么路由挂钩在组件中不起作用: 1。组件从RouterView加载: 2。在类定义之前,我已经在main.ts和My.vue中注册了钩子(以确保注册就在这里): Component.registerHooks([ “路由前”, “走之前”, “路由更新前”, ]); 3。钩子甚至可以在我的路由器配置中工作: { 路径:'/my', 姓名:'我的', 组成部分:我的, //beforeEnter:(收件人:路线、发件人:路线、下一个:任何

这让我困惑了一段时间。我已经搜索了很多,但仍然不知道为什么路由挂钩在组件中不起作用:

1。组件从RouterView加载:


2。在类定义之前,我已经在
main.ts
My.vue
中注册了钩子(以确保注册就在这里):

Component.registerHooks([
“路由前”,
“走之前”,
“路由更新前”,
]);
3。钩子甚至可以在我的路由器配置中工作:

{
路径:'/my',
姓名:'我的',
组成部分:我的,
//beforeEnter:(收件人:路线、发件人:路线、下一个:任何):void=>{
//console.log('It works!');//它在这里工作!
// }
},
4。但它在我的组件中不起作用:

@Comp()
导出默认类My扩展Vue{
路由前公用(收件人:路由、发件人:路由、下一个:任意):无效{
调试器;//未触发!
下一步((vm:Vue.Component)=>{
调试器;//未触发!
next();
});
}
}
有人能帮我吗?

应该可以:

@Comp({
  beforeRouteEnter (
    to: Route,
    from: Route,
    next: (to?: RawLocation | false | ((vm: V) => any) | void) => void
  ): void {
       next(vm => {});
  }
})
export default class My extends Vue {}

@组件装饰器接受带有vue路由器的对象我不知道为什么,但键入修复了它