HarmonyOS 鸿蒙Next 使用V2状态管理遇到一个奇怪的问题

HarmonyOS 鸿蒙Next 使用V2状态管理遇到一个奇怪的问题 为什么这个对象里面出现了两遍属性值,而且还不相同

@ObservedV2
export class PlayStateType {
  @Trace img: string = "" // 音乐封面
  @Trace name: string = "" // 音乐名称
  @Trace author: string = "" // 作者
  @Trace url: string = "" // 当前播放连接
  @Trace playIndex: number = 0 // 当前在播放列表中的播放索引
  @Trace time: number = 0 // 播放时间
  @Trace duration: number = 0 // 音乐的播放时长
  @Trace isPlay: boolean = false // 是否正在播放
  @Trace playMode: 'auto' | 'repeat' | 'random' = "auto" // 播放模式
  @Type(songItemType)
  @Trace playList: songItemType[] = []; // 当前的播放列表

  constructor() {
    this.img = "";
    this.name = "";
    this.author = "";
    this.url = "";
    this.playIndex = 0;
    this.time = 0;
    this.duration = 0;
    this.isPlay = false;
    this.playMode = 'auto';
    this.playList = [];
  }
}

更多关于HarmonyOS 鸿蒙Next 使用V2状态管理遇到一个奇怪的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

带下划线的可以理解是状态管理内部需要用到的属性,一般是被代理的属性。提供给开发者使用的是没有带下划线的。正常使用即可。

更多关于HarmonyOS 鸿蒙Next 使用V2状态管理遇到一个奇怪的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用V2状态管理时,可能会遇到状态更新不及时或状态丢失的问题。这通常是由于状态管理库与UI组件的生命周期不一致导致的。V2状态管理依赖于@State@Prop@Link等装饰器来管理组件的状态,但在某些情况下,如组件重新渲染或异步操作后,状态可能没有正确同步。确保在组件的aboutToAppearaboutToDisappear生命周期方法中正确处理状态更新,避免在UI更新期间进行状态更改。如果问题仍然存在,建议检查是否有多个组件共享同一状态并进行了不恰当的修改。

回到顶部