HarmonyOS 鸿蒙Next 定义对象,访问对象的属性为啥会报错

HarmonyOS 鸿蒙Next 定义对象,访问对象的属性为啥会报错

图片

import { TitleBar, TitleBarController } from '../components/TitleBar'
import { Fitem } from '../components/Fitem'

@Entry
@Component
struct PostsMg {
  @State fobj: object = {
    title:'1',
    note:'2'
  }

  build() {
    Stack() {
      TitleBar({title:'查看编辑', rtitle:''})

      Column() {
        Text(this.fobj.title)
        Fitem({mvalue:$fobj,p:'title'})
        Fitem({mvalue:$fobj,p:'note'})
      }
      .width('100%').margin({top:50})
    }
    .alignContent(Alignment.Top)
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 定义对象,访问对象的属性为啥会报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

对象必须继承某个 class 或者 interface , 鸿蒙中不允许直接 使用 object

更多关于HarmonyOS 鸿蒙Next 定义对象,访问对象的属性为啥会报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


标题

这是段落文字。

这是另一段落文字。

还可以这样

@State fobj: {title:string,note:string}= { title:‘1’, note:‘2’ }

在前面添加一个接口,然后把

@State fobj: Fobj = {
    title:'1',
    note:'2'
  }

改成

@State fobj: Fobj = {
    title:'1',
    note:'2'
  }

在HarmonyOS鸿蒙Next中,定义对象后访问对象的属性报错,可能是由于以下原因:

  • 对象未正确定义:确保对象已按照鸿蒙Next的规范正确定义。鸿蒙Next使用的是ArkTS语言,对象定义应符合其语法规则。例如,使用letconst关键字定义对象,并确保属性名和值正确。

  • 属性名拼写错误:访问对象属性时,属性名必须与定义时一致。ArkTS是大小写敏感的,确保属性名拼写正确。

  • 对象未初始化:如果对象未初始化或为nullundefined,访问其属性会报错。确保对象在使用前已正确初始化。

  • 作用域问题:访问对象属性时,确保在正确的作用域内。如果对象在某个函数或块级作用域内定义,尝试在外部访问会报错。

  • 类型不匹配:鸿蒙Next的ArkTS是强类型语言,访问对象属性时,确保属性类型与预期一致。如果类型不匹配,可能导致运行时错误。

  • 异步操作未完成:如果对象是通过异步操作获取的,确保在访问属性前异步操作已完成。否则,对象可能尚未准备好,导致访问属性时报错。

  • 框架或API限制:某些鸿蒙Next的API或框架可能对对象属性的访问有特定限制。确保遵循相关文档和规范。

检查上述问题后,如果仍报错,建议查看具体错误信息并进一步排查。

回到顶部