HarmonyOS使用@Objectlink和 @watchs 如何只监听对象一个属性的变化
@Component
export struct TestView{
@ObjectLink @Watch("updateViewModel") viewModel:PlayFlowViewModel
updateViewModel(){
console.log("TestView updateViewModel")
}
}
@Observer
export class PlayFlowViewModel{
playBaseData:PlayBaseData | null = null
option: Options = new Options()
datasource:DataSource = new DataSource()
playEvent:ReceiverEvent = {event:0,bundle:null}
}
场景是视频播放场景,包含播放器的组件里面,需要响应外界的播放器控制消息,例如暂停,Seek等消息。目前设计的方案是想把这些消息和一些播放数据 都统一放到一个model里面便于管理。但是现在发现PlayFlowViewModel中,只要一个属性更新,整个viewmodel的watchs函数都会被触发。目前想只监听一个属性的变化,不知道有没有好的方案。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何监听数组内对象属性变化
1985浏览 • 1回复 待解决
如何实现一个监听网络变化的方法
216浏览 • 1回复 待解决
使用@Observed/@ObjectLink监听多层状态的变化
691浏览 • 1回复 待解决
HarmonyOS使用ObjectLink Observed 无法监听到嵌套类的属性更新
132浏览 • 1回复 待解决
如何监听页面page的变化。 增加和删除。有一个位置可以抓到这些变化的状态。
435浏览 • 1回复 待解决
HarmonyOS通过router页面跳转,如何在一个统一的地方进行监听栈的变化?
136浏览 • 1回复 待解决
HarmonyOS 对象A数组,对象A中又嵌套一个对象B数组,修改B中的属性UI,不刷新
130浏览 • 1回复 待解决
HarmonyOS ObjectLink修饰符对象的属性改变不能引起UI刷新
138浏览 • 1回复 待解决
如何定义一个未知类型的对象
475浏览 • 2回复 待解决
不使用弹窗,通过 stack 和属性显隐模拟一个弹窗
500浏览 • 1回复 待解决
PersistentStorage如何持久化一个对象?
2559浏览 • 1回复 待解决
有没有分开监听同一个类中不同属性的方法?
510浏览 • 1回复 待解决
如何判断一个对象是否在对象数组中
1788浏览 • 1回复 待解决
使用广告数组展示多个广告,为什么只展示一个广告?
188浏览 • 2回复 待解决
页面上存在多个video组件,如何控制各自的播放和停播,在只使用一个controller的情况下
1531浏览 • 1回复 待解决
EntryAbility中的context和getContext(this)是同一个对象吗
1300浏览 • 1回复 待解决
HarmonyOS 如何实现对页面声命周期变化的统一监听
127浏览 • 1回复 待解决
定义一个类,怎么在新建这个类的时候,只赋值这个类中某几个属性
1448浏览 • 1回复 待解决
如何判断一个对象实现了某个接口
877浏览 • 1回复 待解决
如何在Native侧构建一个ArkTS对象
1808浏览 • 1回复 待解决
HarmonyOS napi C++侧怎么通过一个“ClassName” 初始化一个ArkTS的对象
76浏览 • 1回复 待解决
ShapeElement类如何使用ShapeElement(Context context, int xmlId)实例化一个对象
6777浏览 • 1回复 待解决
如何监听window大小的变化
181浏览 • 1回复 待解决
如何监听窗口大小的变化
1739浏览 • 1回复 待解决
HarmonyOS 如何实现一个将任意object对象序列化为string的函数?
177浏览 • 1回复 待解决
使用@Watch监听的对象,只能监听一层数据变化,多层次数据变更无法监听,同@State状态管理机制一致,规避方式为把整体更换数据源改为更新item中的属性值,然后用@ObjectLink和@Observed来监听item的变化。参考以下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5