HarmonyOS 鸿蒙Next API12如何设置动态属性?

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next API12如何设置动态属性?

项目从API9升级到了API12.好多语法上都要修改。

但是这个动态属性不知道如何修改。

interface DataBean{
mid:string
mtype:string
face:string
uname?:string
personal?:string
email?:string
sex?:string
rank:number
birthday:string
money:string
scores:string
position:string
typename?:string
company?:string
place:string
address?:string
background:number
ismember:number
name_status:number
company_status:number
realname_status:number
archives_image:string
Invitation_code:string
qrcode:string
is_comp:number
comp_vip:string
comp_endtime:string
}

let bean:DataBean

setBean(key:string){

         bean[key] =“xxxxxxx”   这里的bean的动态属性如何修改呢???  API12已经不支持这样修改了

}

5 回复

采用反射的方式:


interface DataBean {
  mid: string
  mtype: string
  face: string
  uname?: string
  personal?: string
  email?: string
  sex?: string
  rank: number
  birthday: string
  money: string
  scores: string
  position: string
  typename?: string
  company?: string
  place: string
  address?: string
  background: number
  ismember: number
  name_status: number
  company_status: number
  realname_status: number
  archives_image: string
  Invitation_code: string
  qrcode: string
  is_comp: number
  comp_vip: string
  comp_endtime: string
}

let bean: DataBean let key = ‘ismemeber’

function setBean(bean: DataBean, key: string) { Reflect.set(bean, key, ‘111’) }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

已经解决。新建一个ts文件,写一个公共方法转换一下  。ets不支持动态属性,ts文件支持。

export function ObjectConvert(data:object,key:string,value:string):object{
this.data[key]=value;
return data;
}
试试Record<string, string | number>满不满足你的需求

官方适配文档上看到过这个,跟我需要的内容不一样。

在HarmonyOS鸿蒙系统中,API 12版本引入了一系列新的特性和改进,以支持更丰富的应用开发需求。关于设置动态属性,通常可以通过以下几种方式实现:

  1. XML布局文件与Java/Kotlin代码结合

    • 在XML布局文件中定义静态属性。
    • 在Java或Kotlin代码中,通过findViewById找到对应的视图元素,然后使用setter方法动态设置属性。例如,对于TextView,可以使用setText方法动态设置文本内容。
  2. 数据绑定(Data Binding)

    • 利用HarmonyOS提供的数据绑定机制,可以在布局文件中直接绑定数据对象,当数据对象发生变化时,视图属性会自动更新。
  3. 属性动画(Property Animation)

    • 对于需要动态改变的视觉属性(如透明度、位置、大小等),可以使用属性动画系统,通过Animator类来设置动画效果,实现属性的平滑过渡。
  4. 自定义组件

    • 如果系统提供的组件无法满足需求,可以创建自定义组件,并在自定义组件中定义和处理动态属性。

请注意,以上方法的具体实现可能因项目需求和HarmonyOS版本的不同而有所调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部