09-23 17:45:18.858 16636-13776 C03f00/ArkCompiler E [ArkR

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'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值