首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义的属性,该属性在所有警报点都已填充

未定义的属性,该属性在所有警报点都已填充
EN

Stack Overflow用户
提问于 2021-01-25 16:00:54
回答 1查看 22关注 0票数 0

因此,根据控制台,我无法在登录后路由到仪表板,因为surname属性未定义,但在我的警报中,我始终可以看到它正确填写

代码语言:javascript
运行
复制
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函数的值,这就是错误发生的地方,但我可以看到值,所以我不知道发生了什么

代码语言:javascript
运行
复制
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;
  }
}

错误:

代码语言:javascript
运行
复制
core.js:4197 ERROR TypeError: Cannot set property 'surname' of undefined

我可以看到这个属性在它被分配或使用的所有点上定义,所以我不能真正理解这里发生了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-25 16:28:34

就像这样

代码语言:javascript
运行
复制
persist: Persistance = {};

应该能行得通。你的对象还没有初始化,因此你不能给它的任何属性赋值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65880915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档