开发者问题收集

HTML 中的对象可能为空 - Angular 13

2022-06-23
430

我正在使用最新版本的 angular,在一个 html 文件中,当访问子属性时,我得到了 Object is likely null

例如, *ngFor="let child of parent.children"

它抱怨 children 可能为空。

它也不只是数组。在另一个地方,它抱怨 parent.parent 可能为空

奇怪的是它只发生在一个文件中。这让我相信文件有问题,但它没有告诉我。它给了我这些奇怪的错误

我能够编译和运行应用程序,因为我在 tsconfig.json 文件中添加了“strictNullChecks”:false。我可以导航到此页面,它显示无错误,并且其上的所有内容都运行良好,但令我恼火的是,Visual Studio Code 将文件标记为红色,好像有错误一样。

有人知道为什么会这样吗?

2个回答

发生这种情况的原因是,在属性的定义/赋值中,对象可能为空。如果不了解属性的定义和赋值方式,就无法具体说明原因,但最简单/最通用的解决方法是使用空安全运算符:

*ngFor="let child of parent?.children"
bryan60
2022-06-23

我正在将父级初始化为 null...

parent: IParent | null; 

一旦我删除 | null ,错误就消失了。

Dexter Morgan
2022-06-23