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装饰器,能见听到对象属性的变化吗?
235浏览 • 1回复 待解决
HarmonyOS @Watch的回调内可否提供变化前后的值?
267浏览 • 1回复 待解决
HarmonyOS @Watch函数调用问题
387浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何订阅鸿蒙系统中数据库的变化?
42浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙设备间订阅数据库数据变化?
50浏览 • 1回复 待解决
请问各位大佬有没有数据变化订阅的完整例子?
2687浏览 • 1回复 待解决
debug调试的时候,watch添加方法执行结果都是undefined
648浏览 • 1回复 待解决
HarmonyOS 父组件中的变量发现变化时,如何子组件的子组件联动变化?
264浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
377浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
466浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何订阅鸿蒙系统中分布式数据的变化?
50浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用@Watch装饰器监听状态变量变化?
106浏览 • 1回复 待解决
HarmonyOS onAreaChange此方法是变化时回调,没找到初始化完成的方法
340浏览 • 1回复 待解决
#鸿蒙通关秘籍#使用ApplicationContext订阅系统环境变量变化时,需要注意什么?
121浏览 • 2回复 待解决
#鸿蒙学习大百科#关系型数据库如何开启订阅分布式数据变化?
276浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何开启订阅分布式数据变化?
272浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何关闭订阅分布式数据变化?
238浏览 • 1回复 待解决
#鸿蒙学习大百科#关系型数据库如何关闭订阅分布式数据变化?
341浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样在ArkTS中使用@Watch装饰器监听状态变量的变化?
173浏览 • 1回复 待解决
Watch GT2什么时候可以升级鸿蒙
7231浏览 • 1回复 待解决
HarmonyOS 折叠屏手机折叠状态变化时,menu自动消失
287浏览 • 1回复 待解决
#鸿蒙学习大百科#被@Trace装饰的属性变化时会触发什么操作?
183浏览 • 1回复 待解决
如何订阅系统环境变量的变化
384浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在HarmonyOS Next的省市区弹窗选择器中,如何实现选择变化时的实时数据更新?
96浏览 • 0回复 待解决
HarmonyOS 数据类中的方法无法被调用
257浏览 • 1回复 待解决
是否可以实现只监听newsEntity.NewsID
可以参考以下demo:
可以监听id,这样父组件的其他属性改变,只要id不变,watch就不会触发。