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
待解决
相关问题
请问各位大佬有没有数据变化订阅的完整例子?
2445浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
216浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
68浏览 • 1回复 待解决
debug调试的时候,watch添加方法执行结果都是undefined
452浏览 • 1回复 待解决
如何订阅系统环境变量的变化
172浏览 • 1回复 待解决
如何在页面中订阅UIAbility实例的生命周期变化
1608浏览 • 1回复 待解决
如何监听数组内对象属性变化
1981浏览 • 1回复 待解决
如何取消订阅输入法文本内容的变化
118浏览 • 1回复 待解决
HarmonyOS如何监听系统音量按键导致的音量变化
163浏览 • 1回复 待解决
光敏电阻和人体红外获取数据变化的疑问
7856浏览 • 2回复 待解决
Watch GT2什么时候可以升级鸿蒙
6879浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
152浏览 • 1回复 待解决
HarmonyOS @Observed修饰的类属性变化没有引起子组件刷新
111浏览 • 1回复 待解决
MySQL insert执行太慢,导致接口超时重试,这个时候insert的数据会不会回滚?
3384浏览 • 1回复 待解决
在@Watch函数中调用async await,UI刷新特别慢是什么原因?
177浏览 • 1回复 待解决
使用@Watch当初始化变量的时候是否会触发
175浏览 • 1回复 待解决
HarmonyOS @Observed装饰的类,构造了对象数组,那这个数组中对象的属性变化之后,能引起视图的更新吗
320浏览 • 1回复 待解决
使用@Watch监听并在回调函数中调用其他异步接口时UI响应慢
1810浏览 • 1回复 待解决
可否在应用启动时不触发onVisibleAreaChange的回调,仅在组件有变化时触发
1818浏览 • 1回复 待解决
首选项数据持久化之后能不能监听变化?
1502浏览 • 1回复 待解决
UIAbility中是否可以监听页面变化
1235浏览 • 1回复 待解决
url变化,text变了,但是xcomponent页面没有变化
168浏览 • 1回复 待解决
@Watch异常有了解的吗?
2545浏览 • 1回复 待解决
watch3 目前华为是否提供开放的sdk,供开发者调用血氧和心率的接口,获取数据?
6392浏览 • 1回复 待解决
是否可以实现只监听newsEntity.NewsID
可以参考以下demo:
可以监听id,这样父组件的其他属性改变,只要id不变,watch就不会触发。