javascript - 角度子对象对象可能是“未定义”
问题描述
我有一个从 api 返回的对象,这个对象有一个子对象。当我在我的组件 html 中显示此子对象的属性时,他工作了。但是当我尝试构建我的项目时,我收到以下错误:
对象可能是“未定义的”。
我的html组件代码:
<img [src]="person?.gallery?.images[0]?.url" />
我也尝试了下面的代码,但现在工作并且很复杂:
<ng-container *ngIf="person !== undefined && person.gallery !== undefined && person.gallery.images !== undefined && person.gallery.length > 0 && person.gallery.images[0] !== undefined">
<img [src]="person?.gallery?.images[0]?.url" />
</ng-container>
在 localhost 中有效,但是当我执行 ng build –prod 时,我得到了这些错误。
解决方案
Angular 中的开发和生产模式是不同的。根据您在项目中使用的设置,生产模式可能会进行额外检查。
在您的情况下,请尝试使用:
<ng-container *ngIf="person?.gallery?.images[0]?.url as u">
<img [src]="u" />
</ng-container>
我还建议重新考虑你的策略。该foo?.bar?.baz?.goo
构造看起来可以使用连击实现。
推荐阅读
- react-native - 获取所有异步存储数据键并将它们设置为状态
- python - Google GCP Cloud Functions 到 BigQuery 错误
- php - php info 不同于 server 和 info.php
- omnet++ - OMNet++中peek命令的作用是什么
- c# - Specflow 3.3 中 NullValueRetriever 功能的替换
- powershell - 如何使用 Invoke-RestMethod 从 Powershell 发布
- google-chrome - 在 Chrome devtools 中多次加载字体
- python - Python 调用 boost .so 文件库未加载错误
- ssis - 将文件上传到 SFTP 后 WinSCP 挂起
- react-native - 错误:没有为关键的 Add Grocery Item 定义路由。必须是以下之一:“屏幕”堆栈操作