HarmonyOS 用@Watch来订阅数据变化时候,数据中每个属性变化都会导致调用这个@Watch方法
当我从一个页面给子组件传递参数时,需要用到@Watch,但是当@Watch的变量里面的字段一个个重新赋值时候,会导致每次都会调用@Watch,导致多次触发,请问有什么办法能避免每次都触发调用方法吗?
比如:
this.newsInfo.NewsType = NewsType.LIVE_TEXT_TYPE
this.newsInfo.NewsTitle = this.liveInfo.LiveTitle
this.newsInfo.NewsID = this.liveInfo.LiveID
this.newsInfo.CreateDate = this.liveInfo.CreateDate
this.newsInfo.Stocks = this.liveInfo.Stocks
this.newsInfo.NewsHot = this.liveInfo.NewsHot
这边我需要将liveInfo中的数据赋值给newsInfo,然后子组件中我会订阅newsInfo的数据变化来进行数据请求,现在会导致多次请求。
之所以用这种方法是因为newsInfo也是网络请求回来的,我需要通知子组件这个数据请求到了子组件中也可以开始请求数据。
父组件代码:
@State newsInfo: NewsEntity = new NewsEntity()
this.newsInfo.NewsType = NewsType.LIVE_TEXT_TYPE
this.newsInfo.NewsTitle = this.liveInfo.LiveTitle
this.newsInfo.NewsID = this.liveInfo.LiveID
this.newsInfo.CreateDate = this.liveInfo.CreateDate
this.newsInfo.Stocks = this.liveInfo.Stocks
传递给子组件
CommentBottomBar({ newsEntity: $newsInfo})
子组件代码:
@Link @Watch('newsEntitySuccess') newsEntity: NewsEntity
newsEntitySuccess() {
request(newsEntity.NewsID)
}
HarmonyOS
赞
收藏 0
回答 2
待解决
相关问题
HarmonyOS 怎么获取watch变化之前的数据
29浏览 • 1回复 待解决
HarmonyOS 如何watch viewmodel中的数据变化显示对话框
39浏览 • 1回复 待解决
HarmonyOS @Watch装饰器,能见听到对象属性的变化吗?
279浏览 • 1回复 待解决
HarmonyOS 数组中嵌套对象的属性值发生变化,@Watch监听不到数组的变化,这个要怎么办
10浏览 • 1回复 待解决
HarmonyOS @Watch装饰器,能监听对象中某个属性的变化值吗?
91浏览 • 1回复 待解决
HarmonyOS @Watch 如何检测数组内元素变化
22浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何订阅鸿蒙系统中数据库的变化?
110浏览 • 1回复 待解决
HarmonyOS @Watch的回调内可否提供变化前后的值?
304浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙设备间订阅数据库数据变化?
132浏览 • 1回复 待解决
HarmonyOS @Watch函数调用问题
417浏览 • 1回复 待解决
请问各位大佬有没有数据变化订阅的完整例子?
2725浏览 • 1回复 待解决
HarmonyOS @Watch回调方法没有改变
31浏览 • 1回复 待解决
debug调试的时候,watch添加方法执行结果都是undefined
691浏览 • 1回复 待解决
HarmonyOS page如何监听数据变化
42浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
416浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何订阅鸿蒙系统中分布式数据的变化?
125浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
496浏览 • 1回复 待解决
HarmonyOS 父组件中的变量发现变化时,如何子组件的子组件联动变化?
336浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何开启订阅分布式数据变化?
289浏览 • 1回复 待解决
#鸿蒙学习大百科#关系型数据库如何开启订阅分布式数据变化?
320浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何关闭订阅分布式数据变化?
267浏览 • 1回复 待解决
#鸿蒙学习大百科#关系型数据库如何关闭订阅分布式数据变化?
384浏览 • 1回复 待解决
HarmonyOS @Observed修饰的class,当内部属性变化时UI不更新
36浏览 • 1回复 待解决
HarmonyOS 折叠屏变化时,获取屏幕宽度问题
8浏览 • 1回复 待解决
是否可以实现只监听newsEntity.NewsID
可以参考以下demo:
可以监听id,这样父组件的其他属性改变,只要id不变,watch就不会触发。