HarmonyOS 组件外定义的class如何合内部UI做双向绑定,以及interface的用法?

有一个interface有多个回调方法:

export interface PlaybackCallback { 
  onPlaybackPreloadingCompletion(timeline: NvsTimeline): void 
  onPlaybackStopped(timeline: NvsTimeline): void 
  onPlaybackTimelinePosition(timeline: NvsTimeline, position: number): void 
}

现在想在代码里使用这个回调,目前找到的可用的方法是:在组件外声明class:

class callback implements PlaybackCallback

在组件内声明:

private mCallBack: callback = new callback();

在代码里使用:
meishe.getInstance()?.setPlaybackCallback(this.mCallBack)

然后就引入一个新问题,因为class callback 是在外部声明的,那么怎么在回调方法onPlaybackTimelinePosition中,把参数position和内部的UI双向绑定?

HarmonyOS
2024-11-04 10:22:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

​参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-mvvm-V5

参考示例:​

@Entry 
@Component 
struct TextExample1 { 
  @State nvsTimeline: NvsTimeline = new NvsTimeline("a") 
  private mCallBack: callback = new callback(); 
  build() { 
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) { 
      TextInput({ text: $$this.nvsTimeline.name }) 
 
      Button("xxx").onClick(() => { 
        let a: NvsTimeline = this.nvsTimeline 
        this.mCallBack.onPlaybackPreloadingCompletion(a) 
      }) 
 
    }.height(600).width(350).padding({ left: 35, right: 35, top: 35 }) 
  } 
} 
class callback implements PlaybackCallback { 
  onPlaybackPreloadingCompletion(timeline: NvsTimeline): void { 
    console.log("xxxxxxxxxxxxxxxxxx", timeline.name) 
    timeline.name = "bbbbb" 
  } 
} 
export interface PlaybackCallback { 
  onPlaybackPreloadingCompletion(timeline: NvsTimeline): void 
} 
@Observed 
class NvsTimeline { 
  name: string; 
  constructor(name: string) { 
    this.name = name 
  } 
}
分享
微博
QQ
微信
回复
2024-11-04 15:22:20
相关问题
napi常见用法class对象绑定
1132浏览 • 1回复 待解决
HarmonyOS $$双向绑定问题
284浏览 • 1回复 待解决
HarmonyOS如何实现双向数据绑定
456浏览 • 1回复 待解决
HarmonyOS 无法使用$$双向绑定
837浏览 • 1回复 待解决
嵌套Class属性变化无法触发UI渲染
291浏览 • 1回复 待解决
HarmonyOS UI内部使用AppStorage问题
343浏览 • 1回复 待解决
求js 中 class类名动态绑定问题?
6442浏览 • 1回复 待解决