09-23 17:45:18.858 16636-13776 C03f00/ArkCompiler E [ArkRuntime Log] TypeError: Cannot read property length of null
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log]Lifetime: 0.000000s
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log]Js-Engine: ark
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log]page: pages/PageTest.js
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log]Error message: Cannot read property length of null
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log]Stacktrace:
09-23 17:45:18.860 16636-13776 C03900/Ace E [Engine Log] at aboutToAppear (entry/src/main/ets/pages/PageTest.ets:12:5)
interface IPerson {
name: string | null;
}
@Entry
@Component
struct PageTest {
@State zs: IPerson = {
name: null
}
aboutToAppear(): void {
this.zs.name!.length
}
build() {
}
}
这个错误表示您在代码的第 12 行试图读取一个为 null
的对象的 length
属性。
这可能是因为您在使用某个变量之前没有正确地初始化它,或者在某个操作中导致该变量被赋值为 null
,然后您又尝试对其进行了基于长度的操作。
您需要检查第 12 行附近涉及的相关代码,找到那个可能为 null
的对象,并确保在进行 length
属性读取操作之前,它已经被正确地初始化和赋值。
报错原因是因为 null 没有lenght的属性方法
两种方法
加一个可选链
this.zs.name?.length
给name一个值
name: 'zs'