gpt4 book ai didi

angular - 类型错误 : Cannot read property 'router' of null Angular2 Router

转载 作者:太空狗 更新时间:2023-10-29 17:30:26 25 4
gpt4 key购买 nike

下面是我的组件。错误点是 this.router.navigate() 部分。登录后,我想将用户重定向到另一个页面,类似于 $state.go('dashboard')

import { Component } from '@angular/core';
import { Router } from '@angular/router';

import { AngularFire } from 'angularfire2';

@Component({
templateUrl: 'app/auth/login.component.html'
})

export class LoginComponent {
constructor(private af: AngularFire, private router: Router) { }
onSubmit(formData) {
if(formData.valid) {
console.log(formData.value);
this.af.auth.login({
email: formData.value.email,
password: formData.value.password
}).then(function(success) {
console.log(success);
this.router.navigate(['/dashboard']);
}).catch(function(err) {
console.log(err);
this.router.navigate(['/dashboard']);
})
}
}
}

而且我不断收到此错误。请赐教,我做错了什么?

enter image description here

最佳答案

你必须在 中使用 Arrow function 而不是 function。thensuccess & catch 回调的。由于 successcatch 回调 function 内部,您正在丢失组件 this(上下文)。

代码

this.af.auth.login({
email: formData.value.email,
password: formData.value.password
}).then(
//used Arrow function here
(success)=> {
console.log(success);
this.router.navigate(['/dashboard']);
}
).catch(
//used Arrow function here
(err)=> {
console.log(err);
this.router.navigate(['/dashboard']);
}
)

关于angular - 类型错误 : Cannot read property 'router' of null Angular2 Router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com