angular - Angular 6 - 错误类型错误:“this.router 未定义”
问题描述
好吧,我又遇到了更多的 Angular 问题。对不起 (?)
问题是我试图在注册后重定向用户,但由于某种原因,我每次都会收到下一个错误:
ERROR TypeError: "this.router is undefined"
基本上,我正在处理表单提交(工作正常)输入并将它们发布到我的 Laravel API,它接受它,执行注册并返回成功消息。无论哪种方式,我都无法使用下一段代码重定向用户(使用 Angular 路由器):
onSubmit() {
this.authService.registerUser(this.user).subscribe(
response => {
let data = Object.assign(response.alert, this.denyControllConfig);
this.sweetAlert(data);
},
error => {
let data = {};
let errors = error.error.errors;
for (let key in errors) data[key] = errors[key][0];
// this.sweetAlert(data);
}
);
setTimeout(function () {
this.router.navigate(['login']);
}, 2000);
}
我在文件顶部这样导入了 Rourter:
import { Router } from "@angular/router";
这是我的类构造函数:
constructor(
private router: Router,
private authService: AuthService
) { }
有什么问题吗?
解决方案
您需要在代码中使用箭头函数才能使用this
setTimeout(() => {
this.router.navigate(['login']);
}, 2000);
推荐阅读
- node.js - 如何为 Google Cloud Function Firestore 触发器使用可重用代码?
- eclipse-hono - 如何知道网关模式下的设备连接数?
- java - PDFBOX Flatten Acro-form 导致文本从原始位置移位
- c - 在名称列表中查找最长的字符串
- python - 如何映射列以在 spark sql 数据框中创建新列?
- ios - MSAL 是否可用于在 ADFS for iOS 移动应用程序上使用基于证书的身份验证来实施 SSO?
- build - kdiff3 可下载的“kdiff3-1.8.5-windows-64-cl.exe” - 什么是“-cl”?
- python-3.x - 如何将数据写入 Django 临时文件?
- lighthouse - 如何修复 Lighthouse 错误:“警告:链接不可抓取”
- mysql - 如何在 MYSQL 的 INSERT 中选择 MAX() 以自动增加 customerNumber