HarmonyOS 父组件的数据源监听到没变化,但是UI刷新了
@Entry
@Component
struct StateCompenent01Page {
@State @Watch("Changed") showStrArr: Array<ShowMessageModel> = []
aboutToAppear(): void {
let model01: ShowMessageModel = new ShowMessageModel('我是展示文字01')
this.showStrArr.push(model01)
let model02: ShowMessageModel = new ShowMessageModel('我是展示文字02')
this.showStrArr.push(model02)
let model03: ShowMessageModel = new ShowMessageModel('我是展示文字03')
this.showStrArr.push(model03)
}
Changed() {
console.info('我变了呀')
this.showStrArr.forEach((model: ShowMessageModel) => {
console.info(model.showStr)
})
}
build() {
Column() {
List() {
Repeat<ShowMessageModel>(this.showStrArr)
.each((obj: RepeatItem<ShowMessageModel>) => {
ListItem() {
Text() {
Span(obj.item.showStr)
Span(obj.item.ifSelected == true ? '选中' : '未选中')
}
}
})
}
List() {
ForEach(this.showStrArr, (itemModel: ShowMessageModel, index: number) => {
ListItem() {
Text() {
Span(itemModel.showStr)
Span(itemModel.ifSelected == true ? '选中' : '未选中')
}
}
}, (item: ShowMessageModel): string => item.ifSelected.toString()
)
}
.margin({
top: 20
})
List() {
ForEach(this.showStrArr, (itemModel: ShowMessageModel, index: number) => {
ListItem() {
ItemView({ itemModel: this.showStrArr[index] })
}
}, (item: ShowMessageModel): string => item.ifSelected.toString()
)
}
.margin({
top: 20
})
}
}
}
有两个疑问
1,如果只有第2和第3个list,在点击第3个list里面的onclick事件时,为什么第2个list不刷新UI
2,如果只有第1和第3个list, 在点击第3个list里面的onclick事件时,第1个list会刷新UI,但是watch没有监听到数据源的变化
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 解析Json数据添加到数据源不刷新UI
1817浏览 • 2回复 待解决
HarmonyOS IDataSource数据源刷新后,列表为不刷新
1701浏览 • 1回复 待解决
HarmonyOS ForEach数据源属性修改,页面不刷新
1094浏览 • 1回复 待解决
HarmonyOS TextPickerDialog数据源更新,UI不更新
1237浏览 • 1回复 待解决
HarmonyOS LazyForEach无法检测数据源的变化进行重新渲染
1147浏览 • 1回复 待解决
HarmonyOS LazyForEach修改数据源不刷新问题
2175浏览 • 1回复 待解决
当网络请求的数据源对象的内容发生变更后,所有图片都会一闪而过;如果数据源的内容没变,就不会发生
1282浏览 • 1回复 待解决
HarmonyOS @Builde修饰器内, 如何监听到isNormalMode的数据变化
761浏览 • 1回复 待解决
HarmonyOS 如何监听到音频焦点的变化
1051浏览 • 1回复 待解决
HarmonyOS 使用LazyForEach,数据源传不进来,UI不更新
1354浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
2031浏览 • 1回复 待解决
HarmonyOS Photo Picker组件数据源赋值问题咨询
1099浏览 • 1回复 待解决
关于使用foreach&lazyforeach更改数据源界面不刷新的问题
2610浏览 • 2回复 待解决
HarmonyOS State的变量无法监听到值的变化
1176浏览 • 1回复 待解决
HarmonyOS picker选择器的数据源问题
1095浏览 • 1回复 待解决
HarmonyOS IDataSource支持数据源整体一次替换
1957浏览 • 1回复 待解决
HarmonyOS TextPicker多列选择器数据源的构造问题
854浏览 • 1回复 待解决
HarmonyOS Tabs展示完毕后,修改数据源后,Tabs内容无法刷新,请问如何处理
846浏览 • 1回复 待解决
异步回调更新数据源,无法触发列表渲染
4192浏览 • 2回复 待解决
HarmonyOS Swiper使用LazyForEach,在数据源更新后,页面闪烁
1461浏览 • 1回复 待解决
IF条件变化后UI不刷新
1626浏览 • 1回复 待解决
Foreach循环渲染,数据源改变时的重复渲染
2671浏览 • 1回复 待解决
HarmonyOS 通过子组件调用父组件方法修改父组件的值后,如何显示以及动态刷新父组件bindsheet标题栏的UI
1298浏览 • 1回复 待解决
如何解决使用foreach&lazyforeach循环渲染时,会出现更改数据源时,界面不刷新的问题
2276浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理HarmonyOS NEXT中轮播图的数据源?
1007浏览 • 1回复 待解决
增强状态管理对类对象中属性的观测能力,可以使用@ObservedV2装饰器和@Trace装饰器装饰类以及类中的属性可参考demo:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-new-observedv2-and-trace-V5#%E5%B5%8C%E5%A5%97%E7%B1%BB%E5%9C%BA%E6%99%AF