Angular 6-错误TypeError:显示输出时,无法读取未定义的属性“ firstName”

Shy*_*ali 0 html json typescript angular6

我在Angular 6中遇到以下错误。我正在显示从数据库返回的json数据。当我在.ts文件中执行console.log时,它显示了整个数组和数据。即使这样会给出错误消息,指出firstName未定义,它会在相关位置显示正确的firstName。即使我使用*ngIf="user.firstName"该错误仍然相同。如果我在之前在数组中放置了另一个属性,user.firstName则会将错误赋予该属性并显示正确的输出。

例如:

{{user.firstName}}
Run Code Online (Sandbox Code Playgroud)

错误TypeError:无法读取Object.eval中未定义的属性“ firstName ”(作为updateDirectives)

{{user.lastName}}
{{user.firstName}}
Run Code Online (Sandbox Code Playgroud)

错误TypeError:无法读取Object.eval上未定义的属性' lastName '[作为updateDirectives]该错误将仅在此处显示lastName。

我可以知道原因吗?

Adr*_*and 6

使用安全的导航操作符?。

{{user?.lastName}}
{{user?.firstName}}
Run Code Online (Sandbox Code Playgroud)

未定义的是用户。

您也可以使用

<ng-container *ngIf="user">
    {{user.lastName}}
    {{user.firstName}}
<ng-container>
Run Code Online (Sandbox Code Playgroud)

  • 我看不到设置用户的代码,但我将假设您发出一个http请求来获取用户。加载页面时,用户是未定义的,并且http请求(如果完成)将结果分配给user。这是当您从用户未定义变为拥有值时。 (2认同)