HarmonyOS 当状态变量通过方法传递给数组时,通过数组的indexOf无法判断当前对象是否存在这个数组中

currentData是一个@Observed修饰的状态变量。(是一个proxy对象)

通过方法传递到一个数组array中。(是Object对象)此时调用array.indexOf无法判断currentData是否在数组中。

可以类似ArrayList或者其他的类做一个类型检查,发现是 proxy 类的时候给他做一次unwrapper,然后两个都拿到真实对象再做比较

HarmonyOS
2025-01-09 15:31:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

当前可以通过V2是现实,参考demo:

@Entry
@ComponentV2
struct Index {
  message: string = 'Hello World';
  item: UpdateItem = new UpdateItem()
  array: [UpdateItem] = [new UpdateItem]

  add(item: UpdateItem) {
    this.array.push(item)
    console.info('11111:' + this.array.indexOf(this.item))
  }

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(()=>{
          this.item.aa = 1
          this.add(this.item)
        })
    }
    .height('100%')
    .width('100%')
  }
}

@ObservedV2
class UpdateItem {
  @Trace aa: number = 0;
}
分享
微博
QQ
微信
回复
2025-01-09 17:41:34
相关问题
如何判断一个对象是否对象数组
2856浏览 • 1回复 待解决
HarmonyOS 数组对象排序
529浏览 • 1回复 待解决
如何判断个数组不为空?
819浏览 • 1回复 待解决
readonly修饰数组无法获取数组元素
2636浏览 • 1回复 待解决
ArkTS数组复制方法
1597浏览 • 1回复 待解决
HarmonyOS constraintSize支持状态变量
503浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
448浏览 • 1回复 待解决
ArkTS如何监听状态变量变化?
1484浏览 • 1回复 待解决
HarmonyOS数组随机获取一个数
282浏览 • 1回复 待解决
HarmonyOS @State可以修饰对象数组
336浏览 • 1回复 待解决
HarmonyOS 对象数组排序问题
437浏览 • 1回复 待解决