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装饰器,能见听到对象属性的变化吗?
169浏览 • 1回复 待解决
HarmonyOS @Watch的回调内可否提供变化前后的值?
211浏览 • 1回复 待解决
HarmonyOS @Watch函数调用问题
281浏览 • 1回复 待解决
请问各位大佬有没有数据变化订阅的完整例子?
2628浏览 • 1回复 待解决
HarmonyOS 父组件中的变量发现变化时,如何子组件的子组件联动变化?
209浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
307浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
398浏览 • 1回复 待解决
debug调试的时候,watch添加方法执行结果都是undefined
602浏览 • 1回复 待解决
HarmonyOS onAreaChange此方法是变化时回调,没找到初始化完成的方法
269浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何开启订阅分布式数据变化?
186浏览 • 1回复 待解决
#鸿蒙学习大百科#关系型数据库如何开启订阅分布式数据变化?
188浏览 • 1回复 待解决
#鸿蒙学习大百科#键值型数据库如何关闭订阅分布式数据变化?
160浏览 • 1回复 待解决
#鸿蒙学习大百科#关系型数据库如何关闭订阅分布式数据变化?
222浏览 • 1回复 待解决
HarmonyOS 折叠屏手机折叠状态变化时,menu自动消失
213浏览 • 1回复 待解决
如何订阅系统环境变量的变化
330浏览 • 1回复 待解决
如何在页面中订阅UIAbility实例的生命周期变化
1761浏览 • 1回复 待解决
#鸿蒙学习大百科#被@Trace装饰的属性变化时会触发什么操作?
129浏览 • 1回复 待解决
Watch GT2什么时候可以升级鸿蒙
7173浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
294浏览 • 1回复 待解决
HarmonyOS list中传入一个sendable属性的数组,数据源变化时,里面的item一直在重新创建,有啥办法避免吗?
192浏览 • 1回复 待解决
HarmonyOS 数据类中的方法无法被调用
177浏览 • 1回复 待解决
#鸿蒙学习大百科#数据库的本地数据变化通知与分布式数据变化通知有什么区别?
164浏览 • 1回复 待解决
HarmonyOS 关于@Watch监听状态问题
347浏览 • 1回复 待解决
HarmonyO foreach循环,数据变化了,界面没有刷新
141浏览 • 1回复 待解决
如何监听数组内对象属性变化
2275浏览 • 1回复 待解决
是否可以实现只监听newsEntity.NewsID
可以参考以下demo:
可以监听id,这样父组件的其他属性改变,只要id不变,watch就不会触发。