Undefined Property在所有警报点填充属性



所以,根据控制台,我不能路由到仪表板登录后,因为姓氏属性是未定义的,但在我的警报,我可以看到它在任何时候都正确填写

login(surName: string, passWord){    
const name = this.members.find( x => x.surname === surName)
const pass = this.members.find( x => x.password === passWord)
if(name && pass){
for (const element of this.members) {
if(element.surname === surName){
alert(element.surname + surName);
this.persist.setPersistence(surName, element.color);
alert("You are Logged in" + element.surname + element.color);
this.router.navigate(['/dashbaord']);
return;
}
}
}else{
alert("User Details are incorrect please make sure your username and password is correct");
}
}

我可以在任何时候检查从输入的数据到按下登录键到传递给set函数的值这就是错误发生的地方但我可以看到值所以我不知道发生了什么

import { Injectable } from '@angular/core';
import { Persistance} from '../Persistance/persistance.model'
@Injectable({
providedIn: 'root'
})
export class PersistService {
persist: Persistance;
constructor() { }
setPersistence(surname : string, color: string){
alert(surname);
this.persist.surname = surname;
this.persist.color = color;
}
}

错误:

core.js:4197 ERROR TypeError: Cannot set property 'surname' of undefined

我可以看到属性在它被分配或使用的所有点上的定义所以我不知道这里发生了什么

类似

persist: Persistance = {};

就可以了。你的对象还没有初始化,因此你不能给它的任何属性赋值。

最新更新