<分区>
我正在尝试实例化一个路由器对象,并在用户未经授权使用 setTimeout 时导航到登录。问题是当我使用下面的代码系统时。
setTimeout(()=>this.router.navigate(['/login']),3000);
但是当我把这一行改成
setTimeout(this.navigateToLogin,3000);
并添加
navigateToLogin(){
console.log("i am in navigate");
this.router.navigate(['/login']);
}
我收到以下错误。我有点困惑。任何帮助将不胜感激..
TypeError: Cannot read property 'navigate' of undefined
全局错误处理器
handleError(error){
console.log(error);
this.router = this.injector.get(Router)
switch(error.status){
case ErrorCodes.UNAUTHORIZED_USER:{
this._msgService.emitGlobalMessage(new EGlobalModal("Error","Unauthorized User, You will be directed in 3 seconds",false,"red"));
//setTimeout(()=>this.router.navigate(['/login']),3000);
setTimeout(this.navigateToLogin,3000);
break;
}
default:{
this._msgService.emitGlobalMessage(new EGlobalModal("Error",error,false,"red"));
break;
}
}
}
网上有很多关于这个主题的令人困惑的信息。我理解这是 function(){} 和箭头函数之间的区别。但我有点需要解释。提前致谢