HarmonyOS 数组中嵌套对象的属性值发生变化,@Watch监听不到数组的变化,这个要怎么办
代码如下:
@Observed
class ProductModel{
name:string = ''
count:number = 0
}
@Entry
@Component
struct ProductListView {
showTitle:boolean = false;
jsonString:string = '[{"name":"商品1", "count":"1"},{"name":"商品2", "count":"1"},{"name":"商品3", "count":"1"}]'
@State @Watch('productListChanged') productList: ProductModel[] = [];
productListChanged(){
this.showTitle = !this.showTitle;
}
aboutToAppear(): void {
this.productList = JSON.parse(this.jsonString);
let list: ProductModel[] = [];
for (const element of this.productList) {
let product: ProductModel = new ProductModel();
product.name = element.name;
product.count = element.count;
list.push(product);
}
this.productList = list;
}
build() {
Column({space:10}){
if(this.showTitle){
Text('标题')
}
ForEach(this.productList,(item:ProductModel)=>{
Column(){
Text('这里无法刷新__'+`${item.count}`)//此处无法刷新,该怎么解决?
ProductView({item:item, countChanged:(product)=>{
//productList数组中嵌套对象item的属性值发生变化,监听不到数组的变化,无法触发productListChanged()方法
}})
}
})
}.padding(20)
}
}
@Component
struct ProductView {
@ObjectLink item: ProductModel;
countChanged: (item:ProductModel)=>void = ()=>{};
build() {
Row(){
Text(this.item.name)
Text(`${this.item.count}`)
Button('数量-1').onClick(()=>{
this.item.count--
if (this.countChanged !== undefined) {
this.countChanged(this.item);
}
})
Button('数量+1').onClick(()=>{
this.item.count++
if (this.countChanged !== undefined) {
this.countChanged(this.item);
}
})
}.width('100%').justifyContent(FlexAlign.SpaceBetween)
}
}
数组中嵌套对象的属性值发生变化,@Watch监听不到数组的变化,这个要怎么办?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 使用ObjectLink观察对象中的数组,修改数组长度,监听不到数据变化
824浏览 • 1回复 待解决
HarmonyOS DataSource数据发生变化,Tabs循环的tabContent未发生变化
327浏览 • 1回复 待解决
如何监听数组内对象属性变化
2580浏览 • 1回复 待解决
HarmonyOS 如何监听数组对象中元素属性的变化
368浏览 • 1回复 待解决
HarmonyOS 页面高度发生变化
445浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
811浏览 • 1回复 待解决
HarmonyOS @Watch装饰器,能监听对象中某个属性的变化值吗?
355浏览 • 1回复 待解决
HarmonyOS @Observed装饰的类,构造了对象数组,那这个数组中对象的属性变化之后,能引起视图的更新吗
1328浏览 • 1回复 待解决
网站.net改PHP,链接发生变化怎么设置301跳转?
2204浏览 • 0回复 待解决
HarmonyOS 基础组件渲染的内容发生变化 添加fade动画
130浏览 • 1回复 待解决
HarmonyOS @Watch 如何检测数组内元素变化
348浏览 • 1回复 待解决
后续异常信息是否会根据版本的迭代发生变化?
833浏览 • 1回复 待解决
HarmonyOS 如何实现根据数组元素对象属性的变化同步更新UI
156浏览 • 1回复 待解决
HarmonyOS Canvas的在onReady函数里link对象发生变化并不会重新走判断
87浏览 • 1回复 待解决
HarmonyOS 容器组件子组件个数发生变化时,有什么监听回调方法吗
153浏览 • 1回复 待解决
HarmonyOS @State修饰的数组内部的值变化了,怎么刷新UI?
785浏览 • 1回复 待解决
HarmonyOS 对象A数组,对象A中又嵌套一个对象B数组,修改B中的属性UI,不刷新
811浏览 • 1回复 待解决
使用@LocalStorageProp修饰的变量,当子组件中的变量值变了,@Entry页面中的值没有发生变化。
738浏览 • 1回复 待解决
BundleInfo.appInfo.accessTokenId使用过程中是否会发生变化
2167浏览 • 1回复 待解决
web组件嵌套滚动在折叠屏展开后收起时其滚动位置会发生变化
400浏览 • 1回复 待解决
HarmonyOS ArkTS堆栈格式结构?后续ArkTS堆栈结构是否会发生变化?
280浏览 • 1回复 待解决
HarmonyOS 对象数组在@state修饰时,对象属性变化界面不刷新的解决办法
148浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现多层嵌套类对象属性变化的监听?
455浏览 • 1回复 待解决
HarmonyOS @Watch装饰器,能见听到对象属性的变化吗?
545浏览 • 1回复 待解决
HarmonyOS 用@Watch来订阅数据变化时候,数据中每个属性变化都会导致调用这个@Watch方法
703浏览 • 2回复 待解决
参考示例: