Angular 6 - 错误类型错误:无法读取未定义的属性“firstName”,同时显示输出
Posted
技术标签:
【中文标题】Angular 6 - 错误类型错误:无法读取未定义的属性“firstName”,同时显示输出【英文标题】:Angular 6 - ERROR TypeError: Cannot read property 'firstName' of undefined, While showing the output 【发布时间】:2019-03-10 12:23:36 【问题描述】:我在 Angular 6 中遇到以下错误。我正在显示从数据库返回的 json 数据。当我在 .ts 文件中执行 console.log 时,它会向我显示带有数据的整个数组。即使这给出了一个错误,说明 firstName 是未定义的,它会在相关位置显示正确的 firstName。即使我使用*ngIf="user.firstName"
,错误仍然相同。如果我在user.firstName
之前将另一个属性放入数组中,则会将错误赋予该属性并显示正确的输出。
例如:
user.firstName
错误类型错误:无法读取未定义的属性“firstName” 在 Object.eval [作为 updateDirectives]
user.lastName
user.firstName
错误类型错误:无法读取未定义的属性“lastName” 在 Object.eval [作为 updateDirectives] 错误只会在此处显示 lastName。
请问这是什么原因。
【问题讨论】:
【参考方案1】:使用安全导航运算符 ?.
user?.lastName
user?.firstName
未定义的是用户。
你也可以使用
<ng-container *ngIf="user">
user.lastName
user.firstName
<ng-container>
【讨论】:
如何在未定义用户时显示数据。我是角度的新手,并试图弄清楚事情。谢谢 我看不到您设置用户的代码,但我将假设您发出 http 请求以获取用户。当您加载页面时,用户未定义,并且当 http 请求完成时,您将结果分配给用户。这是您从未定义用户变为具有价值的时候。 如果将用户设置为空对象 user = ; 我将用户定义为用户:用户;这是用户类的对象。如何将其设置为空 用户 = 姓:空;名字:空;以上是关于Angular 6 - 错误类型错误:无法读取未定义的属性“firstName”,同时显示输出的主要内容,如果未能解决你的问题,请参考以下文章
Angular 6:TypeError:无法读取未定义的属性“值”
Angular 8:错误类型错误:无法读取未定义的属性“无效”
Angular 5:错误类型错误:无法读取未定义的属性“偏移量”
Angular 6 TypeError:无法读取未定义的属性(读取“长度”)错误